我在Laravel中遇到以下问题。
我想通过表单上传文件。但由于某种原因,如果文件大于2100 KB左右,验证失败,并说该文件是“必需的”,我没有提供。
我读过很多文章,这可能是因为php.ini的设置。在我的服务器上,它们是以下内容:
upload_max_filesize 64M
post_max_size 64M
这些值是从phpinfo()的输出中复制的,因此它们有效。
尽管如此,即使是2 MB的文件也无法上传。你有什么想法我可以检查/设置来解决这个问题吗?
我正在使用laravel 5.2和PHP 7.
答案 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在前端将文件拆分为较小的块,然后将其作为同一上传的一部分提交,然后在文件完全上传后在服务器上重新组合这些部分。不过要当心额外的检查。