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下使用以下代码连接并测试
Apr 09 PHP
php将fileterms函数返回的结果变成可读的形式
Apr 21 PHP
php中截取中文字符串的代码小结
Jul 17 PHP
推荐一款MAC OS X 下php集成开发环境mamp
Nov 08 PHP
PHP实现通用alert函数的方法
Mar 11 PHP
PHP框架Laravel插件Pagination实现自定义分页
Apr 22 PHP
YII2框架中excel表格导出的方法详解
Jul 21 PHP
PHP调用微博接口实现微博登录的方法示例
Sep 22 PHP
PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
Jun 12 PHP
Laravel Eloquent ORM 实现查询表中指定的字段
Oct 17 PHP
TP5多入口设置实例讲解
Dec 15 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
discuz论坛 用户登录 后台程序代码
2008/11/27 PHP
PHP实现递归复制整个文件夹的类实例
2015/08/03 PHP
PHP-FPM之Chroot执行环境详解
2015/08/03 PHP
php readfile()修改文件上传大小设置
2017/08/11 PHP
JavaScript入门教程(10) 认识其他对象
2009/01/31 Javascript
javaScript 关闭浏览器 (不弹出提示框)
2010/01/31 Javascript
JS trim去空格的最佳实践
2011/10/30 Javascript
使用Jquery Aajx访问WCF服务(GET、POST、PUT、DELETE)
2012/03/16 Javascript
javascript和jquery修改a标签的href属性
2013/12/16 Javascript
IE的事件传递-event.cancelBubble示例介绍
2014/01/12 Javascript
js函数调用的方式
2014/05/06 Javascript
js实现按Ctrl+Enter发送效果
2014/09/18 Javascript
设计模式中的组合模式在JavaScript程序构建中的使用
2016/05/18 Javascript
js判断复选框是否选中及选中个数的实现代码
2016/05/30 Javascript
Avalonjs 实现简单购物车功能(实例代码)
2017/02/07 Javascript
jQuery中on方法使用注意事项详解
2017/02/15 Javascript
jQuery+PHP+Mysql实现抽奖程序
2020/04/12 jQuery
微信小程序 bindtap 传参的实例代码
2020/02/21 Javascript
axios封装与传参示例详解
2020/10/18 Javascript
python3+PyQt5实现自定义窗口部件Counters
2018/04/20 Python
查看Django和flask版本的方法
2018/05/14 Python
python输入多行字符串的方法总结
2019/07/02 Python
如何利用Python模拟GitHub登录详解
2019/07/15 Python
Python集合基本概念与相关操作实例分析
2019/10/30 Python
Python新手学习标准库模块命名
2020/05/29 Python
美国床垫连锁店:Mattress Firm
2021/02/13 全球购物
Tomcat中怎么使用log4j输出所有的log
2016/07/07 面试题
销售自荐信
2013/10/22 职场文书
中学老师的自我评价
2013/11/07 职场文书
平面设计师工作职责范文
2013/12/03 职场文书
银行职员自我鉴定
2014/04/20 职场文书
领导班子群众路线与四风问题对照检查材料思想汇报
2014/10/11 职场文书
个人年终总结怎么写
2015/03/09 职场文书
SQL Server中交叉联接的用法详解
2021/04/22 SQL Server
如何使用Tkinter进行窗口的管理与设置
2021/06/30 Python
Android 中的类文件和类加载器详情
2022/06/05 Java/Android