无法在Laravel中上传大文件(php.ini设置在我看来是正确的)

时间:2016-03-14 10:08:21

标签: php laravel laravel-5

我在Laravel中遇到以下问题。

我想通过表单上传文件。但由于某种原因,如果文件大于2100 KB左右,验证失败,并说该文件是“必需的”,我没有提供。

我读过很多文章,这可能是因为php.ini的设置。在我的服务器上,它们是以下内容:

upload_max_filesize 64M
post_max_size 64M

这些值是从phpinfo()的输出中复制的,因此它们有效。

尽管如此,即使是2 MB的文件也无法上传。你有什么想法我可以检查/设置来解决这个问题吗?

我正在使用laravel 5.2和PHP 7.

3 个答案:

答案 0 :(得分:0)

您可能希望将以下内容合并到您自己的代码中:

<?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");
?>

答案 1 :(得分:0)

就我而言,这是硬盘空间问题。没有足够的空间来存储文件。 Laravel应该用适当的消息来处理它,而不是指示用户没有上传任何东西。

答案 2 :(得分:0)

检查您使用的服务器软件。例如,Nginx有它自己的限制(我相信默认设置为1MB)。 Apache可能也有。有关这些程序包的配置方法,请查阅相应的手册。或者,如果您使用共享主机,请联系支持人员以查看它们是否可以增加限制。

尽管这不是一个真正可扩展的解决方案。下次您可能要上传100MB的文件,并且可能不想在服务器上允许100MB的请求。更好的方法是使用JavaScript在前端将文件拆分为较小的块,然后将其作为同一上传的一部分提交,然后在文件完全上传后在服务器上重新组合这些部分。不过要当心额外的检查。