簡體   English   中英

無法在 Laravel 中上傳大文件(php.ini 設置在我看來是正確的)

[英]Can't upload large file in Laravel (php.ini settings are correct in my opinion)

我在 Laravel 中遇到以下問題。

我想通過表單上傳文件。 但是由於某種原因,如果文件大於 2100 KB 左右,驗證將失敗,並說該文件是“必需的”,而我沒有提供。

我讀過很多文章,這可能是因為 php.ini 設置。 在我的服務器上,它們如下:

upload_max_filesize 64M
post_max_size 64M

這些值是從 phpinfo() 的輸出中復制的,因此它們是有效的。

盡管如此,即使是 2 MB 的文件也無法上傳。 你有什么想法我可以檢查/設置來解決這個問題嗎?

我正在使用 Laravel 5.2 和 PHP 7。

您可能希望將以下內容合並到您自己的代碼中:

<?php
//--- this tries to override the default of only 2M file uploads.
ini_set("upload_max_filesize","25M");
ini_set("max_execution_time",600); //--- 10 minutes
ini_set("post_max_size","35M");
ini_set("file_uploads","On");
?>

就我而言,這是硬盤空間問題。 沒有足夠的空間來存儲文件。 Laravel應該使用正確的消息來處理它,而不是指示用戶沒有上傳任何內容。

檢查您使用的服務器軟件。 例如,Nginx有它自己的限制(我相信默認設置為1MB)。 Apache也可能擁有它。 有關如何配置它們的包,請參閱相應的手冊。 或者,如果您使用的是共享主機,請與支持人員聯系,看看他們是否可以增加限制。

雖然這不是一個真正可擴展的解決方案。 下次您可能要上傳100MB的文件,並且可能不想在服務器上允許100MB的請求。 更好的方法是使用JavaScript將文件拆分為前端中較小的塊,並將它們作為同一上載的一部分提交,然后在文件完全上載后重新組合服務器上的部分。 請注意您必須在此處執行的其他檢查。

如果你沒有使用任何其他包來檢查上傳文件,那么記得重啟apache。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM