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新手谈谈我的学习心得
Feb 25 PHP
PHP 字符串 小常识
Jun 05 PHP
了解Joomla 这款来自国外的php网站管理系统
Mar 11 PHP
php array_intersect比array_diff快(附详细的使用说明)
Jul 03 PHP
深入解析PHP中的(伪)多线程与多进程
Jul 01 PHP
fckeditor上传文件按日期存放及重命名方法
May 22 PHP
php使用ZipArchive函数实现文件的压缩与解压缩
Oct 27 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
Oct 08 PHP
Zend Framework常用校验器详解
Dec 09 PHP
ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解
Apr 03 PHP
laravel Model 执行事务的实现
Oct 10 PHP
使用tp框架和SQL语句查询数据表中的某字段包含某值
Oct 18 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/03/23 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
2015/11/27 PHP
PHP记录页面停留时间的方法
2016/03/30 PHP
jQuery 行级解析读取XML文件(附源码)
2009/10/12 Javascript
JS实现self的resend
2010/07/22 Javascript
document节点对象的获取方式示例介绍
2013/12/24 Javascript
原生js实现百叶窗效果及原理介绍
2016/04/12 Javascript
JS区分浏览器页面是刷新还是关闭
2016/04/17 Javascript
Jquery Easyui日历组件Calender使用详解(23)
2016/12/18 Javascript
input输入密码变黑点密文的实现方法
2017/01/09 Javascript
AngularJS读取JSON及XML文件的方法示例
2017/05/25 Javascript
微信小程序调用PHP后台接口 解析纯html文本
2017/06/13 Javascript
基于rollup的组件库打包体积优化小结
2018/06/18 Javascript
webpack的CSS加载器的使用
2018/09/11 Javascript
jQuery实现网页拼图游戏
2020/04/22 jQuery
基于Vue插入视频的2种方法小结
2019/04/02 Javascript
基于Vue.js与WordPress Rest API构建单页应用详解
2019/09/16 Javascript
vue利用全局导航守卫作登录后跳转到未登录前指定页面的实例代码
2020/05/19 Javascript
[34:39]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#1COL VS EG第二局
2016/03/05 DOTA
[55:03]LGD vs EG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python中__call__用法实例
2014/08/29 Python
详解python中TCP协议中的粘包问题
2019/03/22 Python
Python实现插入排序和选择排序的方法
2019/05/12 Python
Python切图九宫格的实现方法
2019/10/10 Python
Pycharm如何运行.py文件的方法步骤
2020/03/03 Python
python selenium xpath定位操作
2020/09/01 Python
HTML5 canvas基本绘图之绘制曲线
2016/06/27 HTML / CSS
美国休闲服装品牌:Express
2016/09/24 全球购物
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
大学生个人推荐信范文
2013/11/25 职场文书
外贸采购员岗位职责
2015/04/03 职场文书
4S店客服专员岗位职责
2015/04/07 职场文书
严以修身专题学习研讨会发言材料
2015/11/09 职场文书
修辞手法有哪些?
2019/08/29 职场文书
js实现上传图片到服务器
2021/04/11 Javascript
Python基础之元类详解
2021/04/29 Python