解析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中使用Oracle数据库(2)
Oct 09 PHP
解决phpmyadmin中文乱码问题。。。
Jan 18 PHP
为PHP初学者的8点有效建议
Nov 20 PHP
PHP的简易冒泡法代码分享
Aug 28 PHP
PHP中file_exists与is_file,is_dir的区别介绍
Sep 12 PHP
php生成zip压缩文件的方法详解
Jun 09 PHP
PHP加密解密实例分析
Dec 25 PHP
详解PHP如何更好的利用PHPstorm的自动提示
Aug 18 PHP
Laravel中使用Queue的最基本操作教程
Dec 27 PHP
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
May 28 PHP
PHP创建对象的六种方式实例总结
Jun 27 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
Apr 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
(PHP实现)只使用++运算实现加法,减法,乘法,除法
2013/06/27 PHP
Drupal读取Excel并导入数据库实例
2014/03/02 PHP
地震发生中逃生十大法则
2008/05/12 Javascript
用JavaScript仿PS里的羽化效果代码
2011/12/20 Javascript
原生javaScript做得动态表格(注释写的很清楚)
2013/12/29 Javascript
jQuery实现倒计时按钮功能代码分享
2014/09/03 Javascript
js Calender控件使用详解
2015/01/05 Javascript
JQuery动态添加和删除表格行的方法
2015/03/09 Javascript
JavaScript的函数式编程基础指南
2016/03/19 Javascript
基于javascript实现最简单的选项卡切换效果
2016/05/16 Javascript
浅谈JSON.stringify()和JOSN.parse()方法的不同
2016/08/29 Javascript
jQuery如何解决IE输入框不能输入的问题
2016/10/08 Javascript
React Native如何消除启动时白屏的方法
2017/08/08 Javascript
bootstrap table服务端实现分页效果
2017/08/10 Javascript
node.js express捕获全局异常的三种方法实例分析
2019/12/27 Javascript
[53:21]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-CDEC
2014/05/22 DOTA
[01:08:09]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第二局
2016/03/02 DOTA
举例讲解Linux系统下Python调用系统Shell的方法
2015/11/07 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
2017/02/14 Python
python获取网页中所有图片并筛选指定分辨率的方法
2018/03/31 Python
修复 Django migration 时遇到的问题解决
2018/06/14 Python
Python列表对象实现原理详解
2019/07/01 Python
Jupyter Notebook远程登录及密码设置操作
2020/04/10 Python
PyTorch如何搭建一个简单的网络
2020/08/24 Python
Python批量删除mysql中千万级大量数据的脚本分享
2020/12/03 Python
New Balance天猫官方旗舰店:始于1906年,百年慢跑品牌
2017/11/15 全球购物
协议书与合同的区别
2014/04/18 职场文书
责任书范本
2014/08/25 职场文书
企业挂职心得体会
2014/09/10 职场文书
大学生毕业评语
2014/12/31 职场文书
员工年度工作总结2015
2015/05/18 职场文书
李白经典诗之一:全文无一“月”字,却句句有月
2019/07/12 职场文书
jquery插件实现图片悬浮
2021/04/16 jQuery
如何使用JavaScript策略模式校验表单
2021/04/29 Javascript
微信小程序scroll-view不能左右滑动问题的解决方法
2021/07/09 Javascript
Python 装饰器(decorator)常用的创建方式及解析
2022/04/24 Python