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 define()函数以及defined()函数的用法详解
Jun 05 PHP
解析func_num_args与func_get_args函数的使用
Jun 24 PHP
PHP中ini_set和ini_get函数的用法小结
Feb 18 PHP
php中curl和file_get_content的区别
May 10 PHP
如何让搜索引擎抓取AJAX内容解决方案
Aug 25 PHP
PHP中ini_set与ini_get用法实例
Nov 04 PHP
通过chrome浏览器控制台(Console)进行PHP Debug的方法
Oct 19 PHP
php监测数据是否成功插入到Mysql数据库的方法
Nov 25 PHP
PHP 根据key 给二维数组分组
Dec 09 PHP
PHP 二维关联数组根据其中一个字段排序(推荐)
Apr 04 PHP
PHPstorm激活码2020年5月13日亲测有效
Sep 17 PHP
PHP面试题 wakeup魔法 Ezpop pop序列化与反序列化
Apr 11 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
真正的ZIP文件操作类(php)
2007/07/21 PHP
thinkphp3查询mssql数据库乱码解决方法分享
2014/02/11 PHP
PHP date()函数警告: It is not safe to rely on the system解决方法
2014/08/20 PHP
php使用google地图应用实例
2014/12/31 PHP
PHP获取当前相对于域名目录的方法
2015/06/26 PHP
PHP实现的简单sha1加密功能示例
2017/08/27 PHP
Ubuntu 11.10 安装Node.js的方法
2011/11/30 Javascript
js正文内容高亮效果的实现方法
2013/06/30 Javascript
关于javascript模块加载技术的一些思考
2014/11/28 Javascript
Javascript无参数和有参数类继承问题解决方法
2015/03/02 Javascript
JavaScript中定义类的方式详解
2016/01/07 Javascript
iframe高度自适应及隐藏滚动条的实例详解
2017/09/29 Javascript
jQuery除指定区域外点击任何地方隐藏DIV功能
2017/11/13 jQuery
JavaScript数组排序reverse()和sort()方法详解
2017/12/24 Javascript
Vue 换肤的示例实践
2018/01/23 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
2018/03/01 Javascript
nodejs 如何手动实现服务器
2018/08/20 NodeJs
vue项目开发中setTimeout等定时器的管理问题
2018/09/13 Javascript
JS使用Dijkstra算法求解最短路径
2019/01/17 Javascript
vue下axios拦截器token刷新机制的实例代码
2020/01/17 Javascript
js实现弹幕飞机效果
2020/08/27 Javascript
[02:28]DOTA2 2015国际邀请赛中国区预选赛首日现场百态
2015/05/26 DOTA
python将字典内容存入mysql实例代码
2018/01/18 Python
详解TensorFlow查看ckpt中变量的几种方法
2018/06/19 Python
Python 修改列表中的元素方法
2018/06/26 Python
Python 调用 Outlook 发送邮件过程解析
2019/08/08 Python
python 字典item与iteritems的区别详解
2020/04/25 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
Onzie官网:美国时尚瑜伽品牌
2019/08/21 全球购物
商场促销活动方案
2014/02/08 职场文书
环保倡议书100字
2014/05/15 职场文书
初三语文教学计划
2015/01/22 职场文书
公司周年庆寄语
2019/06/21 职场文书
nginx请求限制配置方法
2021/07/09 Servers
JS 4个超级实用的小技巧 提升开发效率
2021/10/05 Javascript
MySQL去除密码登录告警的方法
2022/04/20 MySQL