PHP如何通过表单直接提交大文件详解


Posted in PHP onJanuary 08, 2019

前言

我想通过表单直接提交大文件,django 那边我就是这么干的。而对于 php 来说,我认为尽管可以设置最大上传的大小,但最大也无法超过内存大小,因为它无法把文件内容都放到 php://input 里面。直到我试了一下。

下面话不多说了,来一起看看详细的介绍吧

试验

我创建内存 256M 的虚拟机,通过表单直接上传 2.4G 的文件,发现居然可以,挺惊讶的:

PHP如何通过表单直接提交大文件详解

后端是 nginx + php 的方式。反正有关 php.ini 里面需要设置的给它足够大:

# pip.ini
post_max_size = 100000M
upload_max_filesize = 100000M

nginx 在 http 块中添加:

# nginx.conf
client_max_body_size 100000m;

难道 PHP 进化了?我把其他版本试了一下,发现 PHP7.0 及其以上的才能成功,5.6 的就不行了,请求会中断 。

PS : php5 不能上传大文件是因为 32 位的锅,导致上传大于 2G 的文件会有问题。

文件 4G 多的时候又不行了,不知道哪里还需要设置:

            article             photoshop                    

改用apache试试

apache 我得用本地的 wamp 来。httpd.conf 需要设置:

# httpd.conf
LimitRequestBody 83886080000

apache 版本,一样得7.0以上才能直接上传大文件,但apache可以上传 4G 多的文件,不清楚为什么,难道因为我本地的内存比较大?

            article             photoshop                    

本机内存 8G ,于是我试了上传个 25G 的文件,也是没问题的:

PHP如何通过表单直接提交大文件详解

可以可以,很好很强大。

总结

我第一个感觉就是 php 变强了,既然能这么方便上传大文件了,在没有要求进度条的需求里,就可以这么来做了,还蛮方便的。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
提问的智慧(2)
Oct 09 PHP
不用数据库的多用户文件自由上传投票系统(1)
Oct 09 PHP
php Smarty模板生成html文档的方法
Apr 12 PHP
解析PHP实现多进程并行执行脚本
Jun 18 PHP
php获取数组长度的方法(有实例)
Oct 27 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
Nov 25 PHP
php实现模拟登陆方正教务系统抓取课表
May 19 PHP
深入理解PHP内核(一)
Nov 10 PHP
用PHP去掉文件头的Unicode签名(BOM)方法
Jun 22 PHP
php微信支付之公众号支付功能
May 30 PHP
PHP命名空间简单用法示例
Dec 28 PHP
PHP htmlspecialchars_decode()函数用法讲解
Mar 01 PHP
Laravel 队列使用的实现
Jan 08 #PHP
laravel 框架配置404等异常页面
Jan 07 #PHP
PHP array_shift()用法实例分析
Jan 07 #PHP
PHP parse_ini_file函数的应用与扩展操作示例
Jan 07 #PHP
PHP一个简单的无需刷新爬虫
Jan 05 #PHP
PHP智能识别收货地址信息实例
Jan 05 #PHP
PHP数字金额转换成中文大写显示
Jan 05 #PHP
You might like
Php获取金书网的书名的实现代码
2010/06/11 PHP
php开发环境配置记录
2011/01/14 PHP
php之XML转数组函数的详解
2013/06/07 PHP
PHP中Cookie的使用详解(简单易懂)
2017/04/28 PHP
PHP关于foreach复制知识点总结
2019/01/28 PHP
JavaScript asp.net 获取当前超链接中的文本
2009/04/14 Javascript
web基于浏览器的本地存储方法应用
2012/11/27 Javascript
javascript:FF/Chrome与IE动态加载元素的区别说明
2014/01/26 Javascript
简单实现JS对dom操作封装
2015/12/02 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
2016/01/22 Javascript
JavaScript String 对象常用方法详解
2016/05/13 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
2016/07/18 Javascript
jQuery实现鼠标选中文字后弹出提示窗口效果【附demo源码】
2016/09/05 Javascript
Javascript中this绑定的3种方法与比较
2016/10/13 Javascript
angular源码学习第一篇 setupModuleLoader方法
2016/10/20 Javascript
Bootstrap模态框禁用空白处点击关闭
2016/10/20 Javascript
jq给页面添加覆盖层遮罩的实例
2017/02/16 Javascript
浅谈JS对html标签的属性的干预以及对CSS样式表属性的干预
2017/06/25 Javascript
解决html input验证只能输入数字,不能输入其他的问题
2017/07/21 Javascript
layui自定义ajax左侧三级菜单
2019/07/26 Javascript
Layui实现数据表格默认全部显示(不要分页)
2019/10/26 Javascript
vue+高德地图实现地图搜索及点击定位操作
2020/09/09 Javascript
详解Python中__str__和__repr__方法的区别
2015/04/17 Python
Django实现全文检索的方法(支持中文)
2018/05/14 Python
python实现在函数中修改变量值的方法
2019/07/16 Python
python使用numpy中的size()函数实例用法详解
2021/01/29 Python
爷爷追悼会答谢词
2014/01/24 职场文书
合作意向书模板
2014/03/31 职场文书
教师教学评估方案
2014/05/09 职场文书
素质教育标语
2014/06/27 职场文书
小学课外阅读总结
2014/07/09 职场文书
调研汇报材料范文
2014/08/17 职场文书
学校四风对照检查材料
2014/08/28 职场文书
Flask搭建一个API服务器的步骤
2021/05/28 Python
九大龙王魂骨,山龙王留下躯干骨,榜首死的最憋屈(被捏碎)
2022/03/18 国漫
Python 装饰器(decorator)常用的创建方式及解析
2022/04/24 Python