前言
我想通過表單直接提交大文件,django 那邊我就是這么干的。而對于 php 來說,我認為盡管可以設置最大上傳的大小,但最大也無法超過內存大小,因為它無法把文件內容都放到 php://input 里面。直到我試了一下。
下面話不多說了,來一起看看詳細的介紹吧
試驗
我創建內存 256M 的虛擬機,通過表單直接上傳 2.4G 的文件,發現居然可以,挺驚訝的:

后端是 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 多的時候又不行了,不知道哪里還需要設置:
|
 |
改用apache試試
apache 我得用本地的 wamp 來。httpd.conf 需要設置:
# httpd.conf
LimitRequestBody 83886080000
apache 版本,一樣得7.0以上才能直接上傳大文件,但apache可以上傳 4G 多的文件,不清楚為什么,難道因為我本地的內存比較大?
|
 |
本機內存 8G ,于是我試了上傳個 25G 的文件,也是沒問題的:

可以可以,很好很強大。
總結
我第一個感覺就是 php 變強了,既然能這么方便上傳大文件了,在沒有要求進度條的需求里,就可以這么來做了,還蠻方便的。
好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
您可能感興趣的文章:- PHP大文件分割分片上傳實現代碼
- PHP大文件及斷點續傳下載實現代碼
- php實現斷點續傳大文件示例代碼
- PHP下載大文件失敗并限制下載速度的實例代碼
- PHP超低內存遍歷目錄文件和讀取超大文件的方法
- 詳解PHP多個進程配合redis的有序集合實現大文件去重
- PHP大文件分片上傳的實現方法
- php下載遠程大文件(獲取遠程文件大小)的實例
- 詳解PHP如何讀取大文件