让你的PHP,APACHE,NGINX支持大文件上传


Posted in PHP onMarch 09, 2021

PHP用全局变量数组$_FILES来记录文件上传的相关信息。

#php.ini

file_uploads=on
#是否允许通过http方式上传文件,设置为off则不允许

max_execution_time=0
#允许脚本最大执行时间,超过这个时间就会报错
#设置为0则不限制时间

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

upload_max_filesize=200M
#允许上传文件的最大大小,此指令必须小于post_max_size

upload_tmp_dir
#上传文件临时存放目录

post_max_size=300M
#允许post方式可以接受最大大小
#最好这个值大于upload_max_filesize

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

文件被上传结束后,默认地被存储在了临时目录中,这时您必须将它从临时目录中删除或移动到其它地方,如果没有,则会被删除。
不管是否上传成功,脚本执行完后临时目录里的文件肯定会被删除。


别以为这样设置好了就可以正常传大文件了,继续往下看:

#NGINX
client_max_body_size 200M;

# 如果需要设置服务器所有站点都支持大文件
# 直接修改 nginx.conf, 添加到 http {} 里面
#
# 如果针对某个站点设置支持大文件
# 修改vhost下站点相对应的 conf , 添加到 server {} 里面, 不要放在 location 里
#APACHE
LimitRequestBody 209715200
#200M=20*1024*1024

记得重启(包括PHP)。

PHP 相关文章推荐
转PHP手册及PHP编程标准
Dec 17 PHP
重新封装zend_soap实现http连接安全认证的php代码
Jan 12 PHP
php实现rc4加密算法代码
Apr 25 PHP
解析PHP提交后跳转
Jun 23 PHP
php实现扫描二维码根据浏览器类型访问不同下载地址
Oct 15 PHP
php通过递归方式复制目录和子目录的方法
Mar 13 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
Mar 23 PHP
列举PHP的Yii 2框架的开发优势
Jul 03 PHP
php实现递归的三种基本方式
Jul 04 PHP
PHP mysql事务问题实例分析
Jan 18 PHP
thinkphp5框架实现的自定义扩展类操作示例
May 16 PHP
Laravel6.18.19如何优雅的切换发件账户
Jun 14 PHP
PHP常用字符串输出方法分析(echo,print,printf及sprintf)
Mar 09 #PHP
PHP中echo与print区别点整理
Mar 09 #PHP
PHP filter_var() 函数, 验证判断EMAIL,URL等
Mar 09 #PHP
PHP读取文件或采集时解决中文乱码
Mar 09 #PHP
利用PHP内置SERVER开启web服务(本地开发使用)
Mar 09 #PHP
PHP7 windows支持
Mar 09 #PHP
PHP7 新增常量
Mar 09 #PHP
You might like
php下把数组保存为文件格式的实例应用
2010/02/08 PHP
PHP连接SQLServer2005方法及代码
2013/12/26 PHP
JavaScript 仿关机效果的图片层
2008/12/26 Javascript
NodeJS制作爬虫全过程(续)
2014/12/22 NodeJs
jquery中animate的stop()方法作用实例分析
2015/01/30 Javascript
javascript验证身份证号
2015/03/03 Javascript
jQuery的事件委托实例分析
2015/07/15 Javascript
JavaScript实现复制内容到粘贴板代码
2016/03/31 Javascript
jQuery 中ajax异步调用的四种方式
2016/06/28 Javascript
JS使用cookie设置样式的方法
2016/06/30 Javascript
JavaScript数组操作函数汇总
2016/08/05 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
2016/10/28 Javascript
利用C/C++编写node.js原生模块的方法教程
2017/07/07 Javascript
vue改变循环遍历后的数据实例
2019/11/07 Javascript
springboot+vue实现文件上传下载
2020/11/17 Vue.js
使用Python实现跳帧截取视频帧
2019/05/31 Python
python opencv将图片转为灰度图的方法示例
2019/07/31 Python
Python字符串处理的8招秘籍(小结)
2019/08/13 Python
利用python实现AR教程
2019/11/20 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
2020/06/23 Python
Django利用elasticsearch(搜索引擎)实现搜索功能
2020/11/26 Python
Python安装Bs4的多种方法
2020/11/28 Python
VisionPros美国站:加拿大在线隐形眼镜和眼镜零售商
2020/02/11 全球购物
什么造成了Java里面的异常
2016/04/24 面试题
党员干部2014全国两会学习心得体会
2014/03/10 职场文书
副总经理岗位职责
2014/03/16 职场文书
教师党员一句话承诺
2014/03/28 职场文书
升学宴演讲稿
2014/09/01 职场文书
2014年电厂个人工作总结
2014/11/27 职场文书
2014司机年终工作总结
2014/12/05 职场文书
清洁员岗位职责
2015/02/15 职场文书
诉讼和解协议书
2016/03/23 职场文书
工作汇报材料难写?方法都在这里了!
2019/07/01 职场文书
Mysql基础知识点汇总
2021/05/26 MySQL
Java中PriorityQueue实现最小堆和最大堆的用法
2021/06/27 Java/Android
5人制售《绝地求生》游戏外挂获利500多万元 被判刑
2022/03/31 其他游戏