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获取表单textarea数据中的换行问题
Sep 10 PHP
php数组去重复数据示例
Feb 25 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
Apr 23 PHP
ThinkPHP模板Switch标签用法示例
Jun 30 PHP
PHP实现生成唯一编号(36进制的不重复编号)
Jul 01 PHP
PHP速成大法
Jan 30 PHP
ecshop 2.72如何修改后台访问地址
Mar 03 PHP
php5.4传引用时报错问题分析
Jan 22 PHP
PHP实现二维数组按某列进行排序的方法
Nov 18 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
Mar 10 PHP
浅谈Laravel队列实现原理解决问题记录
Aug 19 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排序之二维数组的按照字母排序实现代码
2011/08/13 PHP
PHP实现PDO的mysql数据库操作类
2014/12/12 PHP
使用PHP uniqid函数生成唯一ID
2015/11/18 PHP
在laravel中实现将查询的对象转换为多维数组的函数
2019/10/21 PHP
日期处理的js库(迷你版)--自建js库总结
2011/11/21 Javascript
JavaScript中“过于”犀利地for/in循环使用示例
2013/10/22 Javascript
浅谈js的setInterval事件
2014/12/05 Javascript
Jquery元素追加和删除的实现方法
2016/05/24 Javascript
基于Bootstrap仿淘宝分页控件实现代码
2016/11/07 Javascript
移动端界面的适配
2017/01/11 Javascript
vuejs2.0运用原生js实现简单的拖拽元素功能示例
2017/02/24 Javascript
jQuery插件zTree实现清空选中第一个节点所有子节点的方法
2017/03/08 Javascript
详解Angular2响应式表单
2017/06/14 Javascript
webpack2.0配置postcss-loader的方法
2017/08/17 Javascript
React Native预设占位placeholder的使用
2017/09/28 Javascript
浅谈webpack编译vue项目生成的代码探索
2017/12/11 Javascript
vue2.0 父组件给子组件传递数据的方法
2018/01/15 Javascript
node中使用es6/7/8(支持性与性能)
2019/03/28 Javascript
vue+animation实现翻页动画
2020/06/29 Javascript
[48:44]2014 DOTA2国际邀请赛中国区预选赛5.21 TongFu VS HGT
2014/05/22 DOTA
Python中类的继承代码实例
2014/10/28 Python
Python中list列表的一些进阶使用方法介绍
2015/08/15 Python
Django错误:TypeError at / 'bool' object is not callable解决
2019/08/16 Python
keras模型可视化,层可视化及kernel可视化实例
2020/01/24 Python
使用Python获取当前工作目录和执行命令的位置
2020/03/09 Python
python海龟绘图之画国旗实例代码
2020/11/11 Python
极度干燥澳大利亚官方网站:Superdry澳大利亚
2019/03/28 全球购物
4s客服专员岗位职责
2013/12/01 职场文书
ktv收银员岗位职责
2013/12/16 职场文书
物业招聘计划书
2014/01/10 职场文书
自我鉴定书面格式
2014/01/13 职场文书
12.4法制宣传日活动总结
2014/08/26 职场文书
2014年外联部工作总结
2014/11/17 职场文书
三峡大坝导游词
2015/01/31 职场文书
2015社区个人工作总结范文
2015/05/13 职场文书
Vue elementUI表单嵌套表格并对每行进行校验详解
2022/02/18 Vue.js