让你的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与javascript对多项选择的处理
Oct 09 PHP
php中ob(Output Buffer 输出缓冲)函数使用方法
Jul 21 PHP
php 验证码(倾斜,正弦干扰线,黏贴,旋转)
Jun 29 PHP
destoon整合UCenter图文教程
Jun 21 PHP
ThinkPHP自动转义存储富文本编辑器内容导致读取出错的解决方法
Aug 08 PHP
php时间戳格式化显示友好的时间函数分享
Oct 21 PHP
php自定义加密与解密程序实例
Dec 31 PHP
Laravel中间件实现原理详解
Oct 09 PHP
PHP面向对象程序设计OOP继承用法入门示例
Dec 27 PHP
/etc/php-fpm.d/www.conf 配置注意事项
Feb 04 PHP
thinkPHP5框架auth权限控制类与用法示例
Jun 12 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
Apr 23 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实现MySQL更新记录的代码
2008/06/07 PHP
php中截取中文字符串的代码小结
2011/07/17 PHP
使用php实现截取指定长度
2013/08/06 PHP
php实现可以设置中奖概率的抽奖程序代码分享
2014/01/19 PHP
浅谈php7的重大新特性
2015/10/23 PHP
js的表单操作 简单计算器
2011/12/29 Javascript
js倒计时小程序
2013/11/05 Javascript
详细分析使用AngularJS编程中提交表单的方式
2015/06/19 Javascript
基于jQuery实现淡入淡出效果轮播图
2020/07/31 Javascript
基于angular中的重要指令详解($eval,$parse和$compile)
2016/10/21 Javascript
easyui combotree加载静态数据问题(选不上)解决方法
2016/12/26 Javascript
什么是Vue.js框架 为什么选择它?
2017/10/17 Javascript
JavaScript中常见内置函数用法示例
2018/05/14 Javascript
解决vue的 v-for 循环中图片加载路径问题
2018/09/03 Javascript
JS 5种遍历对象的方式
2020/06/16 Javascript
小程序实现背景音乐播放和暂停
2020/06/19 Javascript
JavaScript实时更新当前的时间的示例代码
2020/07/15 Javascript
[37:37]DAC2018 4.4 淘汰赛 Optic vs Mineski 第二场
2018/04/05 DOTA
Python的Twisted框架中使用Deferred对象来管理回调函数
2016/05/25 Python
使用Python的Tornado框架实现一个Web端图书展示页面
2016/07/11 Python
利用python获取Ping结果示例代码
2017/07/06 Python
Python3实现发送QQ邮件功能(html)
2017/12/15 Python
Python中%是什么意思?python中百分号如何使用?
2018/03/20 Python
python中字典按键或键值排序的实现代码
2019/08/27 Python
Python模块_PyLibTiff读取tif文件的实例
2020/01/13 Python
4行Python代码生成图像验证码(2种)
2020/04/07 Python
Django haystack实现全文搜索代码示例
2020/11/28 Python
css3隔行变换色实现示例
2014/02/19 HTML / CSS
html5如何在Canvas中实现自定义路径动画示例
2017/09/18 HTML / CSS
乌克兰珠宝大卖场:Zlato.ua
2020/09/27 全球购物
新西兰最大、占有率最高的综合性药房:PharmacyDirect药房中文网
2020/11/03 全球购物
我的中国梦演讲稿500字
2014/08/19 职场文书
2015年秋季小学开学标语
2015/07/16 职场文书
2016年读书月活动总结范文
2016/04/06 职场文书
创业计划书之宠物店
2019/09/19 职场文书
利用nginx搭建RTMP视频点播、直播、HLS服务器
2022/05/25 Servers