PHP $_FILES函数详解


Posted in PHP onMarch 09, 2011

如:

<form enctype="multipart/form-data" action="upload.php" method="post"> 
<input type="hidden" name="MAX_FILE_SIZE" value="1000"> 
<input name="myFile" type="file"> 
<input type="submit" value="上传文件"> 
</form>

然后upload.php中可以直接用
$_FILES
$_POST
$_GET
等函数获取表单内容。

今天我们着重讲$_FILES函数。
当客户端提交后,我们获得了一个$_FILES 数组

$_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.

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

PHP 相关文章推荐
PHP个人网站架设连环讲(一)
Oct 09 PHP
php删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
Jun 27 PHP
简单的php新闻发布系统教程
May 09 PHP
Laravel框架路由配置总结、设置技巧大全
Sep 03 PHP
Windows下安装PHP单元测试环境PHPUnit图文教程
Oct 24 PHP
php中 $$str 中 &quot;$$&quot; 的详解
Jul 06 PHP
PHP设置头信息及取得返回头信息的方法
Jan 25 PHP
PHP实现适用于自定义的验证码类
Jun 15 PHP
Yii核心验证器api详解
Nov 23 PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
Mar 14 PHP
PHP调用微博接口实现微博登录的方法示例
Sep 22 PHP
PHP实现批量修改文件名的方法示例
Sep 18 PHP
PHP中for与foreach的区别分析
Mar 09 #PHP
php模板中出现空行解决方法
Mar 08 #PHP
在MongoDB中模拟Auto Increment的php代码
Mar 06 #PHP
PHP数组交集的优化代码分析
Mar 06 #PHP
php下安装配置fckeditor编辑器的方法
Mar 02 #PHP
PHP如何抛出异常处理错误
Mar 02 #PHP
php中实现记住密码自动登录的代码
Mar 02 #PHP
You might like
php数组函数序列之array_unique() - 去除数组中重复的元素值
2011/10/29 PHP
基于Zend的Captcha机制的应用
2013/05/02 PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
2013/09/28 PHP
基于jQuery的星级评分插件
2011/08/12 Javascript
Jquery 实现图片轮换
2015/01/28 Javascript
JS定义类的六种方式详解
2016/05/12 Javascript
关于Sequelize连接查询时inlude中model和association的区别详解
2017/02/27 Javascript
jquery submit()不能提交表单的解决方法
2017/04/24 jQuery
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(一)
2017/05/11 Javascript
JavaScript订单操作小程序完整版
2017/06/23 Javascript
JS实现电商放大镜效果
2017/08/24 Javascript
React Native使用Modal自定义分享界面的示例代码
2017/10/31 Javascript
vue 2.8.2版本配置刚进入时候的默认页面方法
2018/09/21 Javascript
基于elementUI实现图片预览组件的示例代码
2019/03/31 Javascript
更强大的vue ssr实现预取数据的方式
2019/07/19 Javascript
Vuex的热更替如何实现
2020/06/05 Javascript
解决echarts图表使用v-show控制图表显示不全的问题
2020/07/19 Javascript
[01:24:34]2014 DOTA2华西杯精英邀请赛5 24 DK VS LGD
2014/05/25 DOTA
Django内容增加富文本功能的实例
2017/10/17 Python
django从请求到响应的过程深入讲解
2018/08/01 Python
python3.4控制用户输入与输出的方法
2018/10/17 Python
Pytorch 定义MyDatasets实现多通道分别输入不同数据方式
2020/01/15 Python
Python2 与Python3的版本区别实例分析
2020/03/30 Python
浅谈python 中的 type(), dtype(), astype()的区别
2020/04/09 Python
HTML5里的placeholder属性使用实例和美化显示效果的方法
2014/04/23 HTML / CSS
Steiff台湾官网:德国金耳釦泰迪熊
2019/12/26 全球购物
兰蔻法国官方网站:Lancôme法国
2020/02/22 全球购物
2019年分享net面试的经历和题目
2016/08/07 面试题
Prototype如何更新局部页面
2013/03/03 面试题
护理专科毕业推荐信
2013/11/10 职场文书
数据员岗位职责
2013/11/19 职场文书
大学老师推荐信
2014/02/25 职场文书
2016入党积极分子考察评语
2015/12/01 职场文书
2016年度师德标兵先进事迹材料
2016/02/26 职场文书
Go timer如何调度
2021/06/09 Golang
Oracle中update和select 关联操作
2022/01/18 Oracle