让你的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 相关文章推荐
自己动手做一个SQL解释器
Oct 09 PHP
php递归函数中使用return的注意事项
Jan 17 PHP
php实现图片添加水印功能
Feb 13 PHP
php采用curl实现伪造IP来源的方法
Nov 21 PHP
PHP中array_slice函数用法实例详解
Nov 25 PHP
PHP Warning: Module 'modulename' already loaded in问题解决办法
Mar 16 PHP
PHP Opcache安装和配置方法介绍
May 28 PHP
PHP实现的登录页面信息提示功能示例
Jul 24 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
Nov 06 PHP
PHP扩展Swoole实现实时异步任务队列示例
Apr 13 PHP
Laravel框架实现多数据库连接操作详解
Jul 12 PHP
PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例
Jan 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生成PDF格式文件并且加密
2015/06/22 PHP
Laravel创建数据库表结构的例子
2019/10/09 PHP
Jquery为a标签的href赋值实现代码
2013/05/03 Javascript
javascript 实现 秒杀,团购 倒计时展示的记录 分享
2013/07/12 Javascript
深入分析jquery解析json数据
2014/12/09 Javascript
jquery滚动到顶部底部代码
2015/04/20 Javascript
JavaScript中Number.MAX_VALUE属性的使用方法
2015/06/04 Javascript
遮罩层点击按钮弹出并且具有拖动和关闭效果(两种方法)
2015/08/20 Javascript
js命名空间写法示例
2015/12/18 Javascript
JavaScript实现带播放列表的音乐播放器实例分享
2016/03/07 Javascript
JS上传组件FileUpload自定义模板的使用方法
2016/05/10 Javascript
纯JS实现可拖拽表单的简单实例
2016/09/02 Javascript
简易的JS计算器实现代码
2016/10/18 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
2017/09/19 Javascript
nodejs简单实现TCP服务器端和客户端的聊天功能示例
2018/01/04 NodeJs
搭建Vue从Vue-cli到router路由护卫的实现
2019/11/14 Javascript
JS实现吸顶特效
2020/01/08 Javascript
Python版实现微信公众号扫码登陆
2020/05/28 Javascript
vant 解决tab切换插件标题样式自定义的问题
2020/11/13 Javascript
Python安装Imaging报错:The _imaging C module is not installed问题解决方法
2014/08/22 Python
python实现决策树分类(2)
2018/08/30 Python
python  创建一个保留重复值的列表的补码
2018/10/15 Python
Python中logging.NullHandler 的使用教程
2018/11/29 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
HTML5 Canvas入门学习教程
2016/03/17 HTML / CSS
详解HTML5中表单验证的8种方法介绍
2016/12/19 HTML / CSS
法国太阳镜店:Sunglasses Shop
2016/08/27 全球购物
Turnbull & Asser官网:英国皇室御用的顶级定制衬衫
2019/01/31 全球购物
澳大利亚购买太阳镜和眼镜网站:Glamoureyes
2020/09/22 全球购物
Marlies Dekkers内衣荷兰官方网店:荷兰奢侈内衣品牌
2020/03/27 全球购物
在校大学生个人的自我评价
2014/02/13 职场文书
工作失误检讨书
2015/01/26 职场文书
管理人员岗位职责
2015/02/14 职场文书
python 算法题——快乐数的多种解法
2021/05/27 Python
Vue项目打包、合并及压缩优化网页响应速度
2021/07/07 Vue.js
Python代码实现双链表
2022/05/25 Python