【问题标题】:Can't upload large file in Laravel (php.ini settings are correct in my opinion)无法在 Laravel 中上传大文件(我认为 php.ini 设置是正确的)
【发布时间】:2016-03-14 10:08:21
【问题描述】:

我在 Laravel 中遇到以下问题。

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

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

upload_max_filesize 64M
post_max_size 64M

这些值是从 phpinfo() 的输出中复制而来的,所以它们是有效的。

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

我使用的是 laravel 5.2 和 PHP 7。

【问题讨论】:

    标签: php laravel laravel-5


    【解决方案1】:

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

    虽然这不是一个真正可扩展的解决方案。下次您可能想要上传一个 100MB 的文件,并且您可能不想在您的服务器上允许 100MB 的请求。更好的方法是在前端使用 JavaScript 将文件拆分为更小的块,并将它们作为同一上传的一部分提交,然后在文件完全上传后在服务器上重新组合这些部分。但请注意您必须在此处进行的其他检查。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • max_execution_time 为 120,并且 file_uploads 已在服务器上设置为 On。即使我的 ini 设置正确,您的代码还能工作吗?
      • 试一试——不会有伤害的 :-)
      • 看看 laravel 的设置,里面可能有东西。我不使用 laravel,所以我无法帮助你:-(
      • 我也有类似的问题。更多细节: php.ini 设置没问题。本地(vagrant,ubuntu)上传作品。在生产(cent os+litespeed)上上传失败。类似的 php.ini 设置。相同的文件。相同的代码。编辑 Laravel 5.2。 Php 5.5(这可能在生产上略有不同,但不会太大。也许是 5.4,也许是 5.6)
      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        如果你没有使用任何其他包上传文件来检查,那么 然后记得重启apache。

        【讨论】:

          猜你喜欢
          • 2018-06-07
          • 1970-01-01
          • 1970-01-01
          • 2013-12-25
          • 2011-11-26
          • 1970-01-01
          • 2014-06-19
          • 1970-01-01
          • 2015-04-07
          相关资源
          最近更新 更多