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文本数据库的搜索方法
Oct 09 PHP
一个简单php扩展介绍与开发教程
Aug 19 PHP
php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
Jul 01 PHP
PHP中将ip地址转成十进制数的两种实用方法
Aug 15 PHP
php 判断字符串中是否包含html标签
Feb 17 PHP
PHP多维数组元素操作类的方法
Nov 14 PHP
php获取网站根目录物理路径的几种方法(推荐)
Mar 04 PHP
微信开发之获取JSAPI TICKET
Jul 07 PHP
PHP实现的AES 128位加密算法示例
Sep 16 PHP
php面试实现反射注入的详细方法
Sep 30 PHP
TP5框架实现自定义分页样式的方法示例
Apr 05 PHP
thinkphp 获取控制器及控制器方法
Apr 16 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
Web程序工作原理详解
2014/12/25 PHP
jQuery的链式调用浅析
2010/12/03 Javascript
js限制文本框只能输入数字(正则表达式)
2012/07/15 Javascript
NodeJS创建基础应用并应用模板引擎
2016/04/12 NodeJs
详解JavaScript异步编程中jQuery的promise对象的作用
2016/05/03 Javascript
vue路由组件按需加载的几种方法小结
2018/07/12 Javascript
js实现点击展开隐藏效果(实例代码)
2018/09/28 Javascript
详解vue项目接入微信JSSDK的坑
2018/12/14 Javascript
详解jQuery如何实现模糊搜索
2019/05/10 jQuery
JavaScript实现美化滑块效果
2019/05/17 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
[01:03:36]Ti4 循环赛第三日DK vs Titan
2014/07/12 DOTA
[40:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs TNC
2018/04/01 DOTA
通过Python模块filecmp 对文件比较的实现方法
2018/06/29 Python
selenium + python 获取table数据的示例讲解
2018/10/13 Python
Ubuntu下Python2与Python3的共存问题
2018/10/31 Python
如何在Django中添加没有微秒的 DateTimeField 属性详解
2019/01/30 Python
django url到views参数传递的实例
2019/07/19 Python
.img/.hdr格式转.nii格式的操作
2020/07/01 Python
Python判断变量是否是None写法代码实例
2020/10/09 Python
Python下载的11种姿势(小结)
2020/11/18 Python
css3实现动画的三种方式
2020/08/24 HTML / CSS
生物化工专业个人自荐信
2013/09/26 职场文书
店面销售职位的职责
2014/03/09 职场文书
办理护照工作证明
2014/10/10 职场文书
2014年社区卫生工作总结
2014/12/18 职场文书
事业单位考察材料范文
2014/12/25 职场文书
市场总监岗位职责
2015/02/11 职场文书
保送生自荐信范文
2015/03/26 职场文书
个人求职意向书
2015/05/11 职场文书
交通安全温馨提示语
2015/07/14 职场文书
2016最新离婚协议书范本及程序
2016/03/18 职场文书
《中国古代诗歌散文欣赏》高中语文教材
2019/08/20 职场文书
go 原生http web 服务跨域restful api的写法介绍
2021/04/27 Golang
各国货币符号大全
2022/02/17 杂记
多线程Spring通过@Scheduled实现定时任务
2022/05/25 Java/Android