解析PHP中$_FILES的使用以及注意事项


Posted in PHP onJuly 05, 2013

$_FILES数组内容如下:
$_FILES['myFile']['name'] 客户端文件的原名称。
$_FILES['myFile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"。
$_FILES['myFile']['size'] 已上传文件的大小,单位为字节。
$_FILES['myFile']['tmp_name'] 文件被上传后在服务端储存的临时文件名,一般是系统默认。可以在php.ini的upload_tmp_dir 指定,但用 putenv() 函数设置是不起作用的。
$_FILES['myFile']['error'] 和该文件上传相关的错误代码。['error'] 是在 PHP 4.2.0 版本中增加的。

下面是它的说明:(它们在PHP3.0以后成了常量)
UPLOAD_ERR_OK 值:0; 没有错误发生,文件上传成功。
UPLOAD_ERR_INI_SIZE 值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
UPLOAD_ERR_FORM_SIZE 值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
UPLOAD_ERR_PARTIAL 值:3; 文件只有部分被上传。
UPLOAD_ERR_NO_FILE 值:4; 没有文件被上传。 值:5; 上传文件大小为0.

注:
1. 文件被上传结束后,默认地被存储在了临时目录中,这时必须将它从临时目录中删除或移动到其它地方,如果没有,则会被删除。也就是不管是否上传成功,脚本执行完后临时目录里的文件肯定会被删除。所以在删除之前要用PHP的 copy() 函数将它复制到其它位置,此时,才算完成了上传文件过程。

2. 在 PHP 4.1.0 版本以前该数组的名称为 $HTTP_POST_FILES,它并不像 $_FILES 一样是自动全局变量。PHP 3 不支持 $HTTP_POST_FILES 数组。

3. 用form上传文件时,一定要加上属性内容 enctype="multipart/form-data",否则用$_FILES[filename]获取文件信息时会报异常。
<form enctype="multipart/form-data" action="URL" method="post">
<input name="myFile" type="file">
<input type="submit" value="上传文件">
</form>

PHP 相关文章推荐
PHP中的超全局变量
Oct 09 PHP
随机头像PHP版
Oct 09 PHP
?繁体转换的class
Oct 09 PHP
linux php mysql数据库备份实现代码
Mar 10 PHP
php获取操作系统语言代码
Nov 04 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
Jun 19 PHP
浅析THINKPHP的addAll支持的最大数据量
Feb 03 PHP
php中使用sftp教程
Mar 30 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
Mar 03 PHP
Yii2前后台分离及migrate使用(七)
May 04 PHP
php中strtotime函数性能分析
Nov 20 PHP
PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
May 06 PHP
如何利用PHP执行.SQL文件
Jul 05 #PHP
PHP session_start()问题解疑(详细介绍)
Jul 05 #PHP
浅析PHP安装扩展mcrypt以及相关依赖项(PHP安装PECL扩展的方法)
Jul 05 #PHP
PHP仿博客园 个人博客(2) 数据库增添改删
Jul 05 #PHP
浅析PHP的ASCII码转换类
Jul 05 #PHP
PHP仿博客园 个人博客(1) 数据库与界面设计
Jul 05 #PHP
PHP cdata 处理(详细介绍)
Jul 05 #PHP
You might like
ajax+php打造进度条 readyState各状态
2010/03/20 PHP
浅析php中json_encode()和json_decode()
2014/05/25 PHP
PHP生成短网址的3种方法代码实例
2014/07/08 PHP
PHP队列用法实例
2014/11/05 PHP
Laravel中使用FormRequest进行表单验证方法及问题汇总
2016/06/19 PHP
浅谈PHP命令执行php文件需要注意的问题
2016/12/16 PHP
PHP实现发送微博消息功能完整示例
2019/12/04 PHP
javascript document.images实例
2008/05/27 Javascript
dojo学习第二天 ajax异步请求之绑定列表
2011/08/29 Javascript
js multiple全选与取消全选实现代码
2012/12/04 Javascript
javascript动态添加、修改、删除对象的属性与方法详解
2014/01/27 Javascript
javascript中if和switch,==和===详解
2015/07/30 Javascript
JavaScript中子对象访问父对象的方式详解
2016/09/01 Javascript
JavaScript实现简单精致的图片左右无缝滚动效果
2017/03/16 Javascript
vue将毫秒数转化为正常日期格式的实例
2018/09/16 Javascript
angular6开发steps步骤条组件
2019/07/04 Javascript
解决vue单页面修改样式无法覆盖问题
2019/08/05 Javascript
Vuex的实战使用详解
2019/10/31 Javascript
vue 动态给每个页面添加title、关键词和描述的方法
2020/08/28 Javascript
python自动化工具日志查询分析脚本代码实现
2013/11/26 Python
Python使用logging结合decorator模式实现优化日志输出的方法
2016/04/16 Python
深入理解NumPy简明教程---数组1
2016/12/17 Python
python实现壁纸批量下载代码实例
2018/01/25 Python
实例分析python3实现并发访问水平切分表
2018/09/29 Python
解决Python使用列表副本的问题
2019/12/19 Python
基于python检查矩阵计算结果
2020/05/21 Python
查看keras的默认backend实现方式
2020/06/19 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
2020/09/05 Python
详解HTML5之pushstate、popstate操作history,无刷新改变当前url
2017/03/15 HTML / CSS
全球最大的服务市场:Fiverr
2017/01/03 全球购物
银行实习生自我鉴定范文
2013/09/19 职场文书
新闻记者个人求职的自我评价
2013/11/28 职场文书
公司新人试用期自我评价
2014/09/17 职场文书
父亲节活动总结
2015/02/12 职场文书
上甘岭观后感
2015/06/10 职场文书
告诉你一个秘密:富人致富的五大优点
2019/07/11 职场文书