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项目打包方法
Feb 18 PHP
PHP IF ELSE简化/三元一次式的使用
Aug 22 PHP
php 计划任务 检测用户连接状态
Mar 29 PHP
php判断上传的Excel文件中是否有图片及PHPExcel库认识
Jan 11 PHP
PHP 读取大文件的X行到Y行内容的实现代码
Jun 24 PHP
php字符串截取的简单方法
Jul 04 PHP
PHP中feof()函数实例测试
Aug 23 PHP
关于URL最大长度限制的相关资料查证
Dec 23 PHP
PHP计算指定日期所在周的开始和结束日期的方法
Mar 24 PHP
php基于session实现数据库交互的类实例
Aug 03 PHP
zend framework重定向方法小结
May 28 PHP
PHP实现的服务器一致性hash分布算法示例
Aug 09 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
2021年最新CPU天梯图
2021/03/04 数码科技
解密ThinkPHP3.1.2版本之独立分组功能应用
2014/06/19 PHP
php之curl实现http与https请求的方法
2014/10/21 PHP
php中有关合并某一字段键值相同的数组合并的改进
2015/03/10 PHP
老生常谈PHP面向对象之注册表模式
2017/05/26 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
PHP实现数据四舍五入的方法小结【4种方法】
2019/03/27 PHP
Javascript对象中关于setTimeout和setInterval的this介绍
2012/07/21 Javascript
Javascript加载速度慢的解决方案
2014/03/11 Javascript
jQuery easyui刷新当前tabs的方法
2016/09/23 Javascript
JS获取IE版本号与HTML设置IE文档模式的方法
2016/10/09 Javascript
谈谈因Vue.js引发关于getter和setter的思考
2016/12/02 Javascript
WebPack基础知识详解
2017/01/16 Javascript
详解vue-cli + webpack 多页面实例应用
2017/04/25 Javascript
基于canvas粒子系统的构建详解
2017/08/31 Javascript
详解Vue 中 extend 、component 、mixins 、extends 的区别
2017/12/20 Javascript
详解封装基础的angular4的request请求方法
2018/06/05 Javascript
vue项目前端知识点整理【收藏】
2019/05/13 Javascript
vue-i18n结合Element-ui的配置方法
2019/05/20 Javascript
微信小程序 image组件遇到的问题
2019/05/28 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
2019/07/30 Javascript
ES6函数和数组用法实例分析
2020/05/23 Javascript
python实现井字棋游戏
2020/03/30 Python
深入解析Python中的上下文管理器
2016/06/28 Python
Python基于回溯法子集树模板解决野人与传教士问题示例
2017/09/11 Python
Python实现爬虫从网络上下载文档的实例代码
2018/06/13 Python
python 执行终端/控制台命令的例子
2019/07/12 Python
python爬虫实现POST request payload形式的请求
2020/04/30 Python
css3弹性盒模型(Flexbox)详细介绍
2014/10/08 HTML / CSS
纯css3制作的火影忍者写轮眼开眼至轮回眼及进化过程实例
2014/11/11 HTML / CSS
CSS3使用transition实现的鼠标悬停淡入淡出
2015/01/09 HTML / CSS
德国领先的大尺码和超大尺码男装在线零售商:Bigtex
2019/06/22 全球购物
财务人员个人自荐信范文
2013/09/26 职场文书
大班幼儿评语大全
2014/04/30 职场文书
党校毕业个人总结
2015/02/28 职场文书
教师实习自我鉴定总结
2019/08/20 职场文书