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 相关文章推荐
PHP5中MVC结构学习
Oct 09 PHP
PHP程序员面试 切忌急功近利(更需要注重以后的发展)
Sep 01 PHP
修改PHP的memory_limit限制的方法分享
Feb 21 PHP
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
Jan 06 PHP
php stream_get_meta_data返回值
Sep 29 PHP
实例讲解PHP面向对象之多态
Aug 20 PHP
PHP正则替换函数preg_replace和preg_replace_callback使用总结
Sep 22 PHP
PHP将页面中点击数量高的链接进行高亮显示的方法
May 30 PHP
PHP简单检测网址是否能够正常打开的方法
Sep 04 PHP
解决form中action属性后面?传递参数 获取不到的问题
Jul 21 PHP
关于PHP中interface的用处详解
Jul 26 PHP
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
Apr 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
SONY SRF-M100的电路分析
2021/03/02 无线电
Google Voice 短信发送接口PHP开源版(2010.5更新)
2010/07/22 PHP
使用php 获取时间今天明天昨天时间戳的详解
2013/06/20 PHP
windows服务器中检测PHP SSL是否开启以及开启SSL的方法
2014/04/25 PHP
深入理解PHP 数组之count 函数
2016/06/13 PHP
Android AsyncTack 异步任务实例详解
2016/11/02 PHP
Laravel基础_关于view共享数据的示例讲解
2019/10/14 PHP
jquery text()要注意啦
2009/10/30 Javascript
jquery 多级下拉菜单核心代码
2010/05/21 Javascript
理解Javascript_05_原型继承原理
2010/10/13 Javascript
javascript中"/"运算符常见错误
2010/10/13 Javascript
关于IE BUG与字符串截取substr的解决办法
2013/04/10 Javascript
JavaScript  cookie 跨域访问之广告推广
2016/04/20 Javascript
微信小程序 picker-view 组件详解及简单实例
2017/01/10 Javascript
简易Vue评论框架的实现(父组件的实现)
2018/01/08 Javascript
vue2.0 路由模式mode="history"的作用
2018/10/18 Javascript
基于Proxy的小程序状态管理实现
2019/06/14 Javascript
Node.js系列之发起get/post请求(2)
2019/08/30 Javascript
微信小程序点击列表跳转到对应详情页过程解析
2019/09/26 Javascript
Vue.js的模板语法详解
2020/02/16 Javascript
解决vue安装less报错Failed to compile with 1 errors的问题
2020/10/22 Javascript
[41:54]2018DOTA2亚洲邀请赛 4.1 小组赛A组加赛 TNC vs Liquid
2018/04/03 DOTA
pyqt5的QComboBox 使用模板的具体方法
2018/09/06 Python
10个Python小技巧你值得拥有
2018/09/29 Python
python将dict中的unicode打印成中文实例
2020/05/11 Python
Python实现封装打包自己写的代码,被python import
2020/07/12 Python
canvas绘制文本内容自动换行的实现代码
2019/01/14 HTML / CSS
澳大利亚领先的在线美容商城:Adore Beauty
2017/04/14 全球购物
HEMA英国:荷兰原创设计
2018/08/28 全球购物
台湾三立电视电商平台:电电购
2019/09/09 全球购物
Lovedrobe官网:英国领先的大码服装品牌
2019/09/19 全球购物
后勤人员自我鉴定
2013/10/20 职场文书
低碳生活倡议书
2014/04/14 职场文书
英文求职信范文
2014/05/23 职场文书
医德医风个人总结
2015/02/28 职场文书
Python 的 sum() Pythonic 的求和方法详细
2021/10/16 Python