让你的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生成缩略图的类代码
Oct 02 PHP
php UTF8 文件的签名问题
Oct 30 PHP
php+javascript的日历控件
Nov 19 PHP
有关JSON以及JSON在PHP中的应用
Apr 09 PHP
PHP的范围解析操作符(::)的含义分析说明
Jul 03 PHP
php中filter函数验证、过滤用户输入的数据
Jan 13 PHP
那些年我们错过的魔术方法(Magic Methods)
Jan 14 PHP
PHP 5.6.11中CURL模块问题的解决方法
Aug 08 PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
Apr 09 PHP
laravel 中某一字段自增、自减的例子
Oct 11 PHP
使用PHP开发留言板功能
Nov 19 PHP
PHP实现倒计时功能
Nov 16 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警告Cannot use a scalar value as an array的解决方法
2012/01/11 PHP
PHP 函数call_user_func和call_user_func_array用法详解
2014/03/02 PHP
PHP中使用asort进行中文排序失效的问题处理
2014/08/18 PHP
Thinkphp调用Image类生成缩略图的方法
2015/03/07 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
2017/04/18 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
php解决crontab定时任务不能写入文件问题的方法分析
2019/09/16 PHP
var与Javascript变量隐式声明
2009/09/17 Javascript
TypeScript具有的几个不同特质
2015/04/07 Javascript
在WordPress中加入Google搜索功能的简单步骤讲解
2016/01/04 Javascript
javascript鼠标右键菜单自定义效果
2020/12/08 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
2016/03/28 Javascript
Vue 中mixin 的用法详解
2018/04/23 Javascript
如何解决.vue文件url引用文件的问题
2019/01/18 Javascript
React 组件渲染和更新的实现代码示例
2019/02/21 Javascript
浅析Vue 防抖与节流的使用
2019/11/14 Javascript
nginx部署多个vue项目的方法示例
2020/09/06 Javascript
[58:58]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第二场
2018/04/05 DOTA
[40:17]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第一场
2018/04/06 DOTA
简单总结Python中序列与字典的相同和不同之处
2016/01/19 Python
Python 操作文件的基本方法总结
2017/08/10 Python
python3 字符串/列表/元组(str/list/tuple)相互转换方法及join()函数的使用
2019/04/03 Python
python简单验证码识别的实现方法
2019/05/10 Python
python+OpenCV实现图像拼接
2020/03/05 Python
python,Java,JavaScript实现indexOf
2020/09/09 Python
CSS3中Animation属性的使用详解
2015/08/06 HTML / CSS
美国电视购物:QVC
2017/02/06 全球购物
美国在线家具网站:GDFStudio
2021/03/13 全球购物
应聘面试自我评价
2014/01/24 职场文书
护理专业自我鉴定
2014/01/30 职场文书
蓬莱阁导游词
2015/02/04 职场文书
高中教师个人总结
2015/02/10 职场文书
个人总结与自我评价2015
2015/03/11 职场文书
婚庆司仪开场白
2015/05/29 职场文书
springboot新建项目pom.xml文件第一行报错的解决
2022/01/18 Java/Android
Android学习之BottomSheetDialog组件的使用
2022/06/21 Java/Android