【问题标题】:Laravel large size image upload validator not workLaravel 大尺寸图片上传验证器不起作用
【发布时间】:2017-04-27 00:10:10
【问题描述】:

我使用 Laravel: 5.2.*PHP 版本 5.6.4 作为我的项目,并尝试验证/限制大尺寸 (max:600kb) 图像(单个文件)与表单上传器。

在提交带有大尺寸图像(即8 MB)的表单时,在主页上重定向我而不执行验证或异常消息。所以我在 log-viwer 上查了一下,发现了一些东西exception 'Illuminate\Session\TokenMismatchException'

我尝试了一些解决方案,下面列出了一些
- Small file get uploaded but not large file in Laravel
- File validation failing on larger files
- L4.0, (CSRF) TokenMismatchException when uploading large files(我知道这是针对 L4 的)

其他表单、路由、请求和所有其他东西在小尺寸下都可以正常工作,所以我认为代码不是问题。我也根据需要更改了 php.ini 并重新启动了 apache,但运气不好。

当前php.ini

upload_max_filesize = 1G
post_max_size = 2G

加载的配置文件php.ini路径)

/etc/php5/apache2/php.ini

我的问题是为什么大尺寸图像不适用于我的项目?请帮助我。
P.S.感谢您的帮助/帮助。

更新(2016 年 12 月 22 日)
我已经查看并找到了问题similar like me,但答案仍然对我不起作用。任何想法!请帮忙!

【问题讨论】:

  • 您能否通过php -i | grep php.ini 仔细检查php.ini 的确切位置,或者通过phpinfo(); 确认确切的文件路径?
  • 如果 php.ini 文件是正确的路径,你能更新你的验证规则的问题吗?
  • @KelvinKyaw:php.ini 位置正确。请参阅:/etc/php5/apache2/php.ini 我的问题已经类似于validator not work,还需要更正吗?
  • 还有一个愚蠢的问题。你用的是 apache 还是 nginx?
  • @KelvinKyaw 不用担心! /etc/php5/apache2/php.ini 所以阿帕奇。

标签: php laravel validation laravel-5.2 ini


【解决方案1】:

评论后请查看

\App\Http\Middleware\VerifyCsrfToken::class,

在 Http 文件夹中的 kernel.php 中。如果这是问题,您可以尝试以下解决方案

在您的表单中添加 {!! csrf_token() !!} 以生成 CSRF 令牌。并将其作为隐藏字段传递

你可以试试这个,因为在 laravel 中有一个用于 csrf 令牌的中间件。

希望这行得通。

【讨论】:

  • 感谢您的回复,我已经说过 小尺寸的东西可以正常工作,所以我认为不需要按照您的建议使用它们。你能解释一下为什么以这种方式使用 CSRF 吗?
  • 它只是出于安全目的,以便检查所有值是否与该特定表单相关。
  • 我猜您可能已经完成了,但只是为了确认您在更改值后是否重新启动了 Apache 服务。
  • 我重新启动但没有运气
猜你喜欢
  • 1970-01-01
  • 2021-06-09
  • 1970-01-01
  • 2023-03-24
  • 2016-06-08
  • 2021-10-15
  • 2015-06-01
  • 2017-07-25
  • 1970-01-01
相关资源
最近更新 更多