PHP如何通過表單直接提交大文件詳解
前言
我想通過表單直接提交大文件,django 那邊我就是這么干的。而對于 php 來說,我認(rèn)為盡管可以設(shè)置最大上傳的大小,但最大也無法超過內(nèi)存大小,因?yàn)樗鼰o法把文件內(nèi)容都放到 php://input 里面。直到我試了一下。
下面話不多說了,來一起看看詳細(xì)的介紹吧
試驗(yàn)
我創(chuàng)建內(nèi)存 256M 的虛擬機(jī),通過表單直接上傳 2.4G 的文件,發(fā)現(xiàn)居然可以,挺驚訝的:

后端是 nginx + php 的方式。反正有關(guān) php.ini 里面需要設(shè)置的給它足夠大:
# pip.ini post_max_size = 100000M upload_max_filesize = 100000M
nginx 在 http 塊中添加:
# nginx.conf client_max_body_size 100000m;
難道 PHP 進(jìn)化了?我把其他版本試了一下,發(fā)現(xiàn) PHP7.0 及其以上的才能成功,5.6 的就不行了,請求會(huì)中斷 。
PS : php5 不能上傳大文件是因?yàn)?32 位的鍋,導(dǎo)致上傳大于 2G 的文件會(huì)有問題。
文件 4G 多的時(shí)候又不行了,不知道哪里還需要設(shè)置:
![]() |
改用apache試試
apache 我得用本地的 wamp 來。httpd.conf 需要設(shè)置:
# httpd.conf LimitRequestBody 83886080000
apache 版本,一樣得7.0以上才能直接上傳大文件,但apache可以上傳 4G 多的文件,不清楚為什么,難道因?yàn)槲冶镜氐膬?nèi)存比較大?
![]() |
本機(jī)內(nèi)存 8G ,于是我試了上傳個(gè) 25G 的文件,也是沒問題的:

可以可以,很好很強(qiáng)大。
總結(jié)
我第一個(gè)感覺就是 php 變強(qiáng)了,既然能這么方便上傳大文件了,在沒有要求進(jìn)度條的需求里,就可以這么來做了,還蠻方便的。
好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
PHP PDO數(shù)據(jù)庫操作預(yù)處理與注意事項(xiàng)
今天小編就為大家分享一篇關(guān)于PHP PDO數(shù)據(jù)庫操作預(yù)處理與注意事項(xiàng),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03
PHP實(shí)現(xiàn)合并兩個(gè)排序鏈表的方法
這篇文章主要介紹了PHP實(shí)現(xiàn)合并兩個(gè)排序鏈表的方法,涉及php針對鏈表的遍歷、判斷、排序等相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
PHP實(shí)現(xiàn)的迪科斯徹(Dijkstra)最短路徑算法實(shí)例
這篇文章主要介紹了PHP實(shí)現(xiàn)的迪科斯徹(Dijkstra)最短路徑算法,簡單描述了迪科斯徹(Dijkstra)最短路徑算法的概念、功能并結(jié)合具體實(shí)例形式分析了php實(shí)現(xiàn)迪科斯徹(Dijkstra)最短路徑算法的相關(guān)步驟與操作技巧,需要的朋友可以參考下2017-09-09
使用PHP會(huì)話(Session)實(shí)現(xiàn)用戶登陸功能
本篇文章是對PHP會(huì)話(Session)實(shí)現(xiàn)用戶登陸功能進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
學(xué)習(xí)php設(shè)計(jì)模式 php實(shí)現(xiàn)門面模式(Facade)
這篇文章主要介紹了php設(shè)計(jì)模式中的門面模式,使用php實(shí)現(xiàn)門面模式,感興趣的小伙伴們可以參考一下2015-12-12
關(guān)于PHP中Object對象的筆記分享,學(xué)習(xí)php面向?qū)ο蟮呐笥芽梢詤⒖枷隆?/div> 2011-06-06最新評論



