PHP上传文件参考配置大文件上传


Posted in PHP onDecember 16, 2015

 PHP用超级全局变量数组$_FILES来记录文件上传相关信息的,在php文件上传之前,可通过调节php.ini中相关配置指令,来控制上传相关细节。

1.file_uploads=on/off

  是否允许通过http方式上传文件

2.max_execution_time=30

  允许脚本最大执行时间,超过这个时间就会报错

3.memory_limit=50M

  设置脚本可以分配的最大内存量,防止失控脚本占用过多内存,此指令只有在编译时设置了
   --enable-memory-limit标志的情况下才生效

4.upload_max_filesize=20M

  允许上传文件的最大大小,此指令必须小于post_max_size

5.upload_tmp_dir

  上传文件临时存放目录

6.post_max_size=30M

  允许post方式可以接受最大大小

$_FILES数组内容如下: 3water.com

$_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上传文件大小限制的方法

1. 一般的文件上传,除非文件很小.就像一个5M的文件,很可能要超过一分钟才能上传完.

但在php中,默认的该页最久执行时间为 30 秒.就是说超过30秒,该脚本就停止执行.

这就导致出现 无法打开网页的情况.这时我们可以修改 max_execution_time

在php.ini里查找

max_execution_time

默认是30秒.改为

max_execution_time = 0

0表示没有限制

2. 修改 post_max_size 设定 POST 数据所允许的最大大小。此设定也影响到文件上传。

php默认的post_max_size 为2M.如果 POST 数据尺寸大于 post_max_size $_POST 和 $_FILES superglobals 便会为空.
查找 post_max_size .改为

post_max_size = 150M

3. 很多人都会改了第二步.但上传文件时最大仍然为 8M.

为什么呢.我们还要改一个参数upload_max_filesize 表示所上传的文件的最大大小。

查找upload_max_filesize,默认为8M改为

upload_max_filesize = 100M

另外要说明的是,post_max_size 大于 upload_max_filesize 为佳.

PHP 相关文章推荐
PHP 上传文件的方法(类)
Jul 30 PHP
php中CI操作多个数据库的代码
Jul 05 PHP
php+Mysqli利用事务处理转账问题实例
Feb 11 PHP
通过修改配置真正解决php文件上传大小限制问题(nginx+php)
Sep 23 PHP
Yii模型操作之criteria查找数据库的方法
Jul 15 PHP
thinkphp框架page类与bootstrap分页(美化)
Jun 25 PHP
PHP面向对象之里氏替换原则简单示例
Apr 08 PHP
php实现的PDO异常处理操作分析
Dec 27 PHP
详解提高使用Java反射的效率方法
Apr 29 PHP
laravel 修改记住我功能的cookie保存时间的方法
Oct 14 PHP
tp5 实现列表数据根据状态排序
Oct 18 PHP
PHP safe_mode开启对于PHP系统函数有什么影响
Nov 10 PHP
谈谈 PHP7新增功能
Dec 16 #PHP
谈谈PHP中substr和substring的正确用法及相关参数的介绍
Dec 16 #PHP
WordPress中邮件的一些修改和自定义技巧
Dec 15 #PHP
使用WordPress发送电子邮件的相关PHP函数用法解析
Dec 15 #PHP
WordPress中用于检索模版的相关PHP函数使用解析
Dec 15 #PHP
修改WordPress中文章编辑器的样式的方法详解
Dec 15 #PHP
PHP工程师VIM配置分享
Dec 15 #PHP
You might like
PHP的preg_match匹配字符串长度问题解决方法
2014/05/03 PHP
php微信公众开发之获取周边酒店信息的方法
2014/12/22 PHP
PHP基于回溯算法解决n皇后问题的方法示例
2017/11/07 PHP
用Greasemonkey 脚本收藏网站会员信息到本地
2009/10/26 Javascript
Javascript 读书笔记索引贴
2010/01/11 Javascript
jQuery Flash/MP3/Video多媒体插件
2010/01/18 Javascript
JavaScript window.document的属性、方法和事件小结
2012/10/24 Javascript
javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码
2015/08/04 Javascript
浅谈jQuery this和$(this)的区别及获取$(this)子元素对象的方法
2016/11/29 Javascript
Bootstrap风格的zTree右键菜单
2017/02/17 Javascript
详解React-Native解决键盘遮挡问题(Keyboard遮挡问题)
2017/07/13 Javascript
Angular 4根据组件名称动态创建出组件的方法教程
2017/11/01 Javascript
vue-video-player 通过自定义按钮组件实现全屏切换效果【推荐】
2018/08/29 Javascript
微信小程序 云开发模糊查询实现解析
2019/09/02 Javascript
VuePress 中如何增加用户登录功能
2019/11/29 Javascript
python中的全局变量用法分析
2015/06/09 Python
Python实现按逗号分隔列表的方法
2018/10/23 Python
使用TensorFlow实现二分类的方法示例
2019/02/05 Python
详解Python正则表达式re模块
2019/03/19 Python
python实现的批量分析xml标签中各个类别个数功能示例
2019/12/30 Python
k-means 聚类算法与Python实现代码
2020/06/01 Python
完美解决ARIMA模型中plot_acf画不出图的问题
2020/06/04 Python
CSS3+HTML5+JS 实现一个块的收缩与展开动画效果
2020/11/17 HTML / CSS
使用html5新特性轻松监听任何App自带返回键的示例
2018/03/13 HTML / CSS
俄罗斯眼镜网: optikaworld
2016/07/31 全球购物
JD Sports澳洲官网:英国领先的运动鞋和运动时尚零售商
2020/02/15 全球购物
如何打印出当前源文件的文件名以及源文件的当前行号
2015/04/05 面试题
大学本科毕业生的自我鉴定
2013/11/26 职场文书
教学实习自我评价
2014/01/28 职场文书
社区敬老月活动实施方案
2014/02/17 职场文书
丧事主持词大全
2014/04/02 职场文书
美术学专业求职信
2014/07/23 职场文书
2015年领导班子工作总结
2015/05/23 职场文书
宣传稿格式范文
2015/07/23 职场文书
《合作意向书》怎么写?
2019/08/20 职场文书
Mysql将字符串按照指定字符分割的正确方法
2022/05/30 MySQL