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写出自己的BLOG系统 2
Apr 12 PHP
全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点
Jan 06 PHP
PHP中usort在值相同时改变原始位置问题的解决方法
Nov 27 PHP
php实现使用正则将文本中的网址转换成链接标签
Dec 03 PHP
PHP中异常处理的一些方法整理
Jul 03 PHP
PHP生成树的方法
Jul 28 PHP
php实现zip文件解压操作
Nov 03 PHP
php中namespace及use用法分析
Dec 06 PHP
laravel学习笔记之模型事件的几种用法示例
Aug 15 PHP
PHP微信开发之微信录音临时转永久存储
Jan 26 PHP
Laravel (Lumen) 解决JWT-Auth刷新token的问题
Oct 24 PHP
php+ajax实现文件切割上传功能示例
Mar 03 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 header功能的使用
2013/10/28 PHP
phpstorm配置Xdebug进行调试PHP教程
2014/12/01 PHP
php检测apache mod_rewrite模块是否安装的方法
2015/03/14 PHP
php封装的数据库函数与用法示例【参考thinkPHP】
2016/11/08 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
PHP读取文件或采集时解决中文乱码
2021/03/09 PHP
JavaScript高级程序设计(第3版)学习笔记3 js简单数据类型
2012/10/11 Javascript
jquery滚动组件(vticker.js)实现页面动态数据的滚动效果
2013/07/03 Javascript
javascript使用数组的push方法完成快速排序
2014/09/15 Javascript
使用JavaScript获取URL中的参数(两种方法)
2016/11/16 Javascript
javascript设计模式之策略模式学习笔记
2017/02/15 Javascript
JavaScript运动框架 解决速度正负取整问题(一)
2017/05/17 Javascript
Bootstrap Table快速完美搭建后台管理系统
2017/09/20 Javascript
seajs模块压缩问题与解决方法实例分析
2017/10/10 Javascript
jQuery实现模拟搜索引擎的智能提示功能简单示例
2019/01/27 jQuery
[04:50]DOTA2亚洲邀请赛小组赛第四日 TOP10精彩集锦
2015/02/02 DOTA
深入讲解Python中面向对象编程的相关知识
2015/05/25 Python
tensorflow 获取变量&打印权值的实例讲解
2018/06/14 Python
Python单元测试简单示例
2018/07/03 Python
浅析python3字符串格式化format()函数的简单用法
2018/12/07 Python
根据tensor的名字获取变量的值方式
2020/01/04 Python
TensorFlow2.0:张量的合并与分割实例
2020/01/19 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
2020/03/28 Python
Python列表的深复制和浅复制示例详解
2021/02/12 Python
TUMI澳大利亚网站:美国旅行箱包品牌
2017/03/27 全球购物
英国屋顶用品和材料超市:Roofing Supplies UK
2019/08/24 全球购物
网上卖盒饭创业计划书范文
2014/02/07 职场文书
党员承诺践诺书
2014/05/20 职场文书
宣传工作经验材料
2014/06/02 职场文书
中国梦演讲稿5分钟
2014/08/19 职场文书
人身损害赔偿协议书范本
2014/09/27 职场文书
西柏坡导游词
2015/02/05 职场文书
骆驼祥子读书笔记
2015/06/26 职场文书
创新创业项目计划书该怎样写?
2019/08/13 职场文书
熟背这些句子,让您的英语口语突飞猛进(135句)
2019/09/06 职场文书
Java由浅入深通关抽象类与接口(上篇)
2022/04/26 Java/Android