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个人网站架设连环讲(一)
Oct 09 PHP
基于mysql的论坛(6)
Oct 09 PHP
php生成WAP页面
Oct 09 PHP
利用PHP和AJAX创建RSS聚合器的代码
Mar 13 PHP
php调用mysql数据 dbclass类
May 07 PHP
解析Ubuntu下crontab命令的用法
Jun 24 PHP
PHP的switch判断语句的“高级”用法详解
Oct 01 PHP
PHP往XML中添加节点的方法
Mar 12 PHP
apache和PHP如何整合在一起
Oct 12 PHP
php+ajax制作无刷新留言板
Oct 27 PHP
PHP正则匹配到2个字符串之间的内容方法
Dec 24 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数据类型的总结分析
2013/06/13 PHP
解析linux下安装memcacheq(mcq)全过程笔记
2013/06/27 PHP
非常全面的php日期时间运算汇总
2015/11/04 PHP
php上传后台无法收到数据解决方法
2019/10/28 PHP
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
浅谈JavaScript实现面向对象中的类
2014/12/09 Javascript
JavaScript实现简单的日历效果
2016/09/25 Javascript
js实现自动图片轮播代码
2017/03/22 Javascript
利用JavaScript在网页实现八数码启发式A*算法动画效果
2017/04/16 Javascript
微信小程序商城项目之购物数量加减(3)
2017/04/17 Javascript
基于zTree树形菜单的使用实例
2017/12/25 Javascript
Javascript实现秒表倒计时功能
2018/11/17 Javascript
vue通过指令(directives)实现点击空白处收起下拉框
2018/12/06 Javascript
JS实现的图片选择顺序切换和循环切换功能示例【测试可用】
2018/12/28 Javascript
微信小程序页面上下滚动效果
2020/11/18 Javascript
Vue中fragment.js使用方法小结
2020/02/17 Javascript
在vue中实现给每个页面顶部设置title
2020/07/29 Javascript
[01:02:18]VGJ.S vs infamous Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
Python利用公共键如何对字典列表进行排序详解
2018/05/19 Python
华为2019校招笔试题之处理字符串(python版)
2019/06/25 Python
python字典的常用方法总结
2019/07/31 Python
利用pyecharts读取csv并进行数据统计可视化的实现
2020/04/17 Python
Python爬取酷狗MP3音频的步骤
2021/02/26 Python
CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)
2013/06/03 HTML / CSS
用纯css3实现的图片放大镜特效效果非常不错
2014/09/02 HTML / CSS
C语言变量的命名规则都有哪些
2013/12/27 面试题
校长竞聘演讲稿
2014/05/16 职场文书
大气污染防治方案
2014/05/19 职场文书
银行员工考核评语
2014/12/31 职场文书
教师党员个人总结
2015/02/10 职场文书
导游词范文
2015/02/13 职场文书
html css3不拉伸图片显示效果
2021/06/07 HTML / CSS
MySQL 1130异常,无法远程登录解决方案详解
2021/08/23 MySQL
mysql中varchar类型的日期进行比较、排序等操作的实现
2021/11/17 MySQL
基于Redis6.2.6版本部署Redis Cluster集群的问题
2022/04/01 Redis
Dashboard管理Kubernetes集群与API访问配置
2022/04/01 Servers