让你的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初学者最感迷茫的问题小结
Mar 27 PHP
php file_get_contents函数轻松采集html数据
Apr 22 PHP
PHP 网络开发详解之远程文件包含漏洞
Apr 25 PHP
php dirname(__FILE__) 获取当前文件的绝对路径
Jun 28 PHP
PHP操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
Nov 10 PHP
深入PHP empty(),isset(),is_null()的实例测试详解
Jun 06 PHP
php防止sql注入示例分析和几种常见攻击正则表达式
Jan 12 PHP
php+mysql实现的二级联动菜单效果详解
May 10 PHP
PHP数据对象PDO操作技巧小结
Sep 27 PHP
php 中的closure用法详解
Jun 12 PHP
Laravel框架中自定义模板指令总结
Dec 17 PHP
tp5.1 框架join方法用法实例分析
May 26 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中将时间差转换为字符串提示的实现代码
2011/08/08 PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
2018/05/23 PHP
Laravel核心解读之异常处理的实践过程
2019/02/24 PHP
laravel 操作数据库常用函数的返回值方法
2019/10/11 PHP
PHP CURL实现模拟登陆并上传文件操作示例
2020/01/02 PHP
JSON扫盲帖 JSON.as类教程
2009/02/16 Javascript
Jquery选择器 $实现原理
2009/12/02 Javascript
ImageZoom 图片放大镜效果(多功能扩展篇)
2010/04/14 Javascript
JavaScript使用shift方法移除素组第一个元素实例分析
2015/04/06 Javascript
jQuery实现分隔条左右拖动功能
2015/11/21 Javascript
js只执行1次的函数示例
2016/07/20 Javascript
JavaScript中定义对象原型的两种使用方法
2016/12/15 Javascript
node.js操作mysql简单实例
2017/05/25 Javascript
详解探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用
2017/06/16 Javascript
基于jQuery对象和DOM对象和字符串之间的转化实例
2017/08/08 jQuery
JavaScript实现的搜索及高亮显示功能示例
2017/08/14 Javascript
简单实现jQuery手风琴效果
2017/08/18 jQuery
vue 列表页跳转详情页获取id以及详情页通过id获取数据
2019/03/27 Javascript
微信小程序传值以及获取值方法的详解
2019/04/29 Javascript
node中使用log4js4.x版本记录日志的方法
2019/08/20 Javascript
python中去空格函数的用法
2014/08/21 Python
python发送邮件脚本
2018/05/22 Python
Python实现的简单排列组合算法示例
2018/07/04 Python
对Python3.6 IDLE常用快捷键介绍
2018/07/16 Python
对python_discover方法遍历所有执行的用例详解
2019/02/13 Python
Python递归函数 二分查找算法实现解析
2019/08/12 Python
学python安装的软件总结
2019/10/12 Python
Python模块/包/库安装的六种方法及区别
2020/02/24 Python
keras自定义损失函数并且模型加载的写法介绍
2020/06/15 Python
德国大型和小型家用电器网上商店:Energeto
2019/05/15 全球购物
阿迪达斯英国官方网站:adidas英国
2019/08/13 全球购物
连锁经营管理专业大学生求职信
2013/10/30 职场文书
法制宣传标语集锦
2014/06/25 职场文书
大学生自荐书范文
2015/03/05 职场文书
如何撰写出一份完美的商业计划书?
2019/07/12 职场文书
MySQL数据库如何查看表占用空间大小
2022/06/10 MySQL