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 相关文章推荐
php中的时间显示
Jan 18 PHP
php为什么选mysql作为数据库? Mysql 创建用户方法
Jul 02 PHP
php设计模式  Command(命令模式)
Jun 17 PHP
如何批量替换相对地址为绝对地址(利用bat批处理实现)
May 27 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
May 12 PHP
ThinkPHP模板判断输出Empty标签用法详解
Jun 30 PHP
php操作xml入门之xml标签的属性分析
Jan 23 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
Apr 07 PHP
PHP面试题之文件目录操作
Oct 15 PHP
详解Yii2.0 rules验证规则集合
Mar 21 PHP
PHP文字转图片功能原理与实现方法分析
Aug 31 PHP
PHP的垃圾回收机制代码实例讲解
Feb 27 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中遍历二维数组并以表格的形式输出的方法
2017/01/03 PHP
php实现往pdf中加数字签名操作示例【附源码下载】
2018/08/07 PHP
用JQuery模仿淘宝的图片放大镜显示效果
2011/09/15 Javascript
js 判断上传文件大小及格式代码
2013/11/13 Javascript
Node.js(安装,启动,测试)
2014/06/09 Javascript
一个可以增加和删除行的table并可编辑表格中内容
2014/06/16 Javascript
jquery实现的横向二级导航效果代码
2015/08/26 Javascript
AngularJS基础 ng-srcset 指令简单示例
2016/08/03 Javascript
Bootstarp基本模版学习教程
2017/02/01 Javascript
VUE开发一个图片轮播的组件示例代码
2017/03/06 Javascript
jQuery 利用ztree实现树形表格的实例代码
2017/09/27 jQuery
vue获取元素宽、高、距离左边距离,右,上距离等还有XY坐标轴的方法
2018/09/05 Javascript
用jQuery将JavaScript对象转换为querystring查询字符串的方法
2018/11/12 jQuery
JS中使用cavas截图网页并解决跨域及模糊问题
2018/11/13 Javascript
Vue移动端用淘宝弹性布局lib-flexible插件做适配的方法
2020/05/26 Javascript
微信小程序 scroll-view的使用案例代码详解
2020/06/11 Javascript
python 简单搭建阻塞式单进程,多进程,多线程服务的实例
2017/11/01 Python
解决Python下imread,imwrite不支持中文的问题
2018/12/05 Python
详解python-图像处理(映射变换)
2019/03/22 Python
搭建python django虚拟环境完整步骤详解
2019/07/08 Python
python代码如何实现余弦相似性计算
2020/02/09 Python
python图形界面开发之wxPython树控件使用方法详解
2020/02/24 Python
编写python代码实现简单抽奖器
2020/10/20 Python
基于HTML5 Canvas:字符串,路径,背景,图片的详解
2013/05/09 HTML / CSS
HTML5 canvas实现的静态循环滚动播放弹幕
2021/01/05 HTML / CSS
Mytheresa中国官网:德国时尚奢侈品商城
2017/08/04 全球购物
泰国综合购物网站:Lazada泰国
2018/04/09 全球购物
Zipadee-Zip襁褓过渡毯:Sleeping Baby
2018/12/30 全球购物
Interhome丹麦:在线预订度假屋和公寓
2019/07/18 全球购物
计算机应用专业毕业生求职信
2013/10/24 职场文书
五一手机促销方案
2014/03/08 职场文书
写自荐信的注意事项
2014/03/09 职场文书
诚信考试倡议书
2014/04/15 职场文书
长城导游词300字
2015/01/30 职场文书
汶川大地震感悟
2015/08/10 职场文书
仅用一句SQL更新整张表的涨跌幅、涨跌率的解决方案
2021/05/06 MySQL