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 相关文章推荐
综合图片计数器
Oct 09 PHP
PHP 判断常量,变量和函数是否存在
Apr 26 PHP
PHP XML备份Mysql数据库
May 27 PHP
编写安全 PHP应用程序的七个习惯深入分析
Jun 08 PHP
php动态生成缩略图并输出显示的方法
Apr 20 PHP
php实现的单一入口应用程序实例分析
Sep 23 PHP
PHP使用socket发送HTTP请求的方法
Feb 14 PHP
PHP文件上传处理案例分析
Oct 15 PHP
Laravel如何使用Redis共享Session
Feb 23 PHP
phpstorm 配置xdebug的示例代码
Mar 31 PHP
yii2 开发api接口时优雅的处理全局异常的方法
May 14 PHP
解决Laravel使用验证时跳转到首页的问题
Nov 17 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附件下载中文名称乱码的解决方法
2015/12/17 PHP
用javascript控制iframe滚动的代码
2007/04/10 Javascript
6个DIV 135或246间隔一秒轮番显示效果
2010/07/24 Javascript
网站如何做到完全不需要jQuery也可以满足简单需求
2013/06/27 Javascript
js中的onchange和onpropertychange (onchange无效的解决方法)
2014/03/08 Javascript
jquery查找tr td 示例模拟
2014/05/08 Javascript
JavaScript中使用document.write向页面输出内容实例
2014/10/16 Javascript
Angularjs结合Bootstrap制作的一个TODO List
2016/08/18 Javascript
JS实现图文并茂的tab选项卡效果示例【附demo源码下载】
2016/09/21 Javascript
详解Vue.js——60分钟组件快速入门(上篇)
2016/12/05 Javascript
详解Angular2组件之间如何通信
2017/06/22 Javascript
详解jquery选择器的原理
2017/08/01 jQuery
vue绑定设置属性的多种方式(5)
2017/08/16 Javascript
Vue v2.4中新增的$attrs及$listeners属性使用教程
2018/01/08 Javascript
浅析Vue实例以及生命周期
2018/08/14 Javascript
vue-cli系列之vue-cli-service整体架构浅析
2019/01/14 Javascript
Vue 权限控制的两种方法(路由验证)
2019/08/16 Javascript
[01:01:04]2018DOTA2亚洲邀请赛 4.5 淘汰赛 OpTic vs TNC 第一场
2018/04/06 DOTA
Python中的with...as用法介绍
2015/05/28 Python
python如何实现excel数据添加到mongodb
2015/07/30 Python
python版opencv摄像头人脸实时检测方法
2018/08/03 Python
使用pygame编写Flappy bird小游戏
2020/03/14 Python
python实现数字炸弹游戏
2020/07/17 Python
python 实现超级玛丽游戏
2020/11/25 Python
Python爬虫简单运用爬取代理IP的实现
2020/12/01 Python
斯凯奇美国官网:SKECHERS美国
2016/08/20 全球购物
英国工艺品购物网站:Minerva Crafts
2018/01/29 全球购物
程序运行正确, 但退出时却"core dump"了,怎么回事
2014/02/19 面试题
Internal修饰符有什么含义
2013/07/10 面试题
高中毕业自我鉴定
2013/12/13 职场文书
企业消防安全制度
2014/02/02 职场文书
高三上学期学习自我评价
2014/04/23 职场文书
投标承诺函范文
2015/01/21 职场文书
教师见习总结范文
2015/06/23 职场文书
vue中使用mockjs配置和使用方式
2022/04/06 Vue.js
动态规划之使用备忘录来改进Javascript函数
2022/04/07 Javascript