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的宝库目录--PEAR
Oct 09 PHP
基于PHP与XML的PDF文档生成技术
Oct 09 PHP
一个php作的文本留言本的例子(二)
Oct 09 PHP
在PHP中执行系统外部命令
Oct 09 PHP
php将数据库导出成excel的方法
May 07 PHP
PHP下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
Jun 09 PHP
PHP 第二节 数据类型之字符串类型
Apr 28 PHP
Symfony2 session用法实例分析
Feb 04 PHP
php 如何获取文件的后缀名
Jun 05 PHP
通过chrome浏览器控制台(Console)进行PHP Debug的方法
Oct 19 PHP
Laravel5.4简单实现app接口Api Token认证方法
Aug 29 PHP
laravel实现查询最后执行的一条sql语句的方法
Oct 09 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 SQLite类
2009/05/07 PHP
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
2012/01/16 PHP
php下载excel无法打开的解决方法
2013/12/24 PHP
php格式化电话号码的方法
2015/04/24 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
一个加密JavaScript的开源工具PACKER2.0.2
2006/11/04 Javascript
使一个函数作为另外一个函数的参数来运行的javascript代码
2007/08/13 Javascript
理解Javascript_10_对象模型
2010/10/16 Javascript
js 实现 input type="file" 文件上传示例代码
2013/08/07 Javascript
Javascript之Math对象详解
2016/06/07 Javascript
@ResponseBody 和 @RequestBody 注解的区别
2017/03/08 Javascript
JavaScript中一些特殊的字符运算
2017/08/17 Javascript
vue2中使用sass并配置全局的sass样式变量的方法
2018/09/04 Javascript
vue给组件传递不同的值方法
2018/09/29 Javascript
vue写h5页面的方法总结
2019/02/12 Javascript
JS操作JSON常用方法(10w阅读)
2020/12/06 Javascript
学习python (1)
2006/10/31 Python
python实现代理服务功能实例
2013/11/15 Python
python发送伪造的arp请求
2014/01/09 Python
Python+OpenCV感兴趣区域ROI提取方法
2019/01/10 Python
Python多线程爬取豆瓣影评API接口
2019/10/22 Python
python3爬虫中异步协程的用法
2020/07/10 Python
python中用ctypes模拟点击的实例讲解
2020/11/26 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
2020/11/28 Python
Scrapy+Selenium自动获取cookie爬取网易云音乐个人喜爱歌单
2021/02/01 Python
Gretna Green中文官网:苏格兰格林小镇
2019/10/16 全球购物
回门宴新郎答谢词
2014/01/12 职场文书
刑事附带民事起诉状
2015/05/19 职场文书
python3实现Dijkstra算法最短路径的实现
2021/05/12 Python
浅谈pytorch中stack和cat的及to_tensor的坑
2021/05/20 Python
nginx部署多前端项目的几种方法
2021/05/25 Servers
Python实现DBSCAN聚类算法并样例测试
2021/06/22 Python
vue项目支付功能代码详解
2022/02/18 Vue.js
【海涛dota解说】DCG联赛第一周 LGD VS DH
2022/04/01 DOTA
MYSQL优化之数据表碎片整理详解
2022/04/03 MySQL
PHP面试题 wakeup魔法 Ezpop pop序列化与反序列化
2022/04/11 PHP