-
php简单文件上传$_FILES与move_uploaded_file实现文件上传
php简单文件上传$_files与move_uploaded_file实现文件上传.
$_files["file"]["name"] - 被上传文件的名称
$_files["file"]["type"] - 被上传文件的类型
$_files["file"]["size"] - 被上传文件的大小,以字节计
$_files["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
$_files["file"]["error"] - 由文件上传导致的错误代码
这是一种非常简单文件上传方式,基于安全方面的考虑,您应当增加有关什么用户有权上传文件的限制.
注释:对于 ie,识别 jpg 文件的类型必须是 pjpeg,对于 firefox,必须是 jpeg.
- /*
- *$formname html上传表单名称
- *$allowtype_array 允许上传的文件类型数组
- *$allow_size 允许上传的文件最大大小,默认是1mb
- *$isrename 是否需要重命名被上传的文件
- */
- function upload_file($formname,$path,$allowtype_array,$allow_size='1048576',$isrename=true){
- if($_files[$formname]['tmp_name']=='' || $_files[$formname]['name']=='' || $_files[$formname]['size']==0){
- return false;
- }
- if(!file_exists('../uploadfiles/'.$path)){
- if(!mkdir('../uploadfiles/'.$path,0777)){
- writeerrmsg('创建上传文件保存文件目录失败,请联系管理员检查目录权限');
- }
- }
- if($_files[$formname]['size']>$allow_size){
- writeerrmsg('上传文件过大,请将上传文件限制在'.number_format($allow_size/1048576,'2','.','').'mb以内');
- }
- $file_name_array=explode('.',$_files[$formname]['name']);
- $file_type=strtolower($file_name_array[count($file_name_array)-1]);
- if(!in_array($file_type,$allowtype_array)){
- writeerrmsg('上传文件类型错误,仅允许上传后缀名为 .'.implode(' .',$allowtype_array).'的文件');
- }
- $save_name=$isrename?randomname().'.'.$file_type:$_files[$formname]['name'];
- if(!move_uploaded_file($_files[$formname]['tmp_name'],'../uploadfiles/'.$path.'/'.$save_name)){
- writeerrmsg('文件上传过程中发生错误,请重新上传');
- }
- switch($_files[$formname]['error']){
- case 0:
- return $save_name;
- break;
- case 1:
- writeerrmsg('上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值');
- break;
- case 2:
- writeerrmsg('上传文件的大小超过了 html 表单中 max_file_size 选项指定的值');
- break;
- case 3:
- writeerrmsg('文件只有部分被上传');
- break;
- case 4:
- writeerrmsg('没有文件被上传');
- break;
- default: //开源代码phpfensi.com
- writeerrmsg('能出现这条错误提示,日子也该混到头了');
- break;
- }
- }
move_uploaded_file
本函数检查并确保由 file 指定的文件是合法的上传文件,即通过 php 的 http post 上传机制所上传的,如果文件合法,则将其移动为由 newloc 指定的文件.
如果 file 不是合法的上传文件,不会出现任何操作,move_uploaded_file() 将返回 false.
如果 file 是合法的上传文件,但出于某些原因无法移动,不会出现任何操作,move_uploaded_file() 将返回 false,此外还会发出一条警告.
这种检查显得格外重要,如果上传的文件有可能会造成对用户或本系统的其他用户显示其内容的话.
原文链接:http://www.phpfensi.com/php/20140805/4216.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式