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 相关文章推荐
数字转英文
Dec 06 PHP
php 动态执行带有参数的类方法
Apr 10 PHP
Ajax+PHP边学边练 之五 图片处理
Dec 03 PHP
libmysql.dll与php.ini是否真的要拷贝到c:\windows目录下呢
Mar 15 PHP
discuz程序的PHP加密函数原理分析
Aug 05 PHP
解析Ubuntu下crontab命令的用法
Jun 24 PHP
qq登录,新浪微博登录接口申请过程中遇到的问题
Jul 22 PHP
浅析Yii2中GridView常见操作
Apr 22 PHP
php支付宝在线支付接口开发教程
Sep 19 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
Jul 17 PHP
thinkphp5框架API token身份验证功能示例
May 21 PHP
php中对象引用和复制实例分析
Aug 14 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/09/11 PHP
PHP数组传递是值传递而非引用传递概念纠正
2013/01/31 PHP
Yii框架扩展CGridView增加导出CSV功能的方法
2017/05/24 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
2018/11/10 PHP
JTrackBar水平拖动效果
2007/07/15 Javascript
JavaScript 事件参考手册
2008/12/24 Javascript
使用JavaScript switch case 另类写法
2010/03/14 Javascript
javascript静态页面传值的三种方法分享
2013/11/12 Javascript
jQuery实现跨域
2015/02/03 Javascript
JS/Jquery判断对象为空的方法
2015/06/11 Javascript
JQuery实现鼠标移动图片显示描述层的方法
2015/06/25 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(一)
2015/12/10 Javascript
深入理解Node中的buffer模块
2017/06/03 Javascript
vuex学习之Actions的用法详解
2017/08/29 Javascript
vue实现验证码输入框组件
2017/12/14 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
vue如何将v-for中的表格导出来
2018/05/07 Javascript
jquery实现动态添加附件功能
2018/10/23 jQuery
Node.js+Vue脚手架环境搭建的方法步骤
2020/03/08 Javascript
原生js实现点击按钮复制内容到剪切板
2020/11/19 Javascript
采用python实现简单QQ单用户机器人的方法
2014/07/03 Python
在pycharm上mongodb配置及可视化设置方法
2018/11/30 Python
解决python线程卡死的问题
2019/02/18 Python
python覆盖写入,追加写入的实例
2019/06/26 Python
python检测服务器端口代码实例
2019/08/31 Python
Python数据可视化图实现过程详解
2020/06/12 Python
Python爬虫自动化获取华图和粉笔网站的错题(推荐)
2021/01/08 Python
CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)
2013/06/03 HTML / CSS
PatPat阿根廷:妈妈们的购物平台
2019/05/30 全球购物
Moda Operandi官网:美国奢侈品电商,海淘秀场T台同款
2020/05/26 全球购物
.net软件工程师面试题
2015/03/31 面试题
企业总经理岗位职责
2014/02/13 职场文书
解除劳动关系协议书范文
2014/09/11 职场文书
主持人大赛开场白
2015/05/29 职场文书
100句拼搏进取的名言警句,值得一读!
2019/10/07 职场文书
vue代码分块和懒加载非必要资源文件
2022/04/11 Vue.js