我的网站托管在共享服务器上。最大上传限制为 5MB。我无法更改 PHP ini 设置,这很好。
在 Laravel 中,如果上传的文件小于 5MB,则所有验证和文件上传都可以正常工作。但是,当上传大于 5MB 的文件时,我收到以下异常而不是验证错误:
如何验证或强制文件低于服务器的上传限制?
原文由 baig772 发布,翻译遵循 CC BY-SA 4.0 许可协议
我的网站托管在共享服务器上。最大上传限制为 5MB。我无法更改 PHP ini 设置,这很好。
在 Laravel 中,如果上传的文件小于 5MB,则所有验证和文件上传都可以正常工作。但是,当上传大于 5MB 的文件时,我收到以下异常而不是验证错误:
如何验证或强制文件低于服务器的上传限制?
原文由 baig772 发布,翻译遵循 CC BY-SA 4.0 许可协议
post_max_size 和 upload_max_filesize 是您可以设置来配置 php.ini 文件或 .htaccess 文件或 httpd.conf 文件的指令。
php.ini 示例:
post_max_size=15M
upload_max_filesize=15M
.htaccess 示例:
php_value post_max_size=15M
php_value upload_max_filesize=15M
httpd.conf 示例:
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
DocumentRoot /var/www/html/example/
ErrorLog /var/log/httpd/error.log
<Directory /var/www/html/example/>
AllowOverride None
<IfModule mod_php5.c>
php_value post_max_size=15M
php_value upload_max_filesize=15M
</IfModule>
</Directory>
</VirtualHost>
原文由 AddWeb Solution Pvt Ltd 发布,翻译遵循 CC BY-SA 3.0 许可协议
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答549 阅读✓ 已解决
779 阅读
您似乎对更改 PHP 限制以允许更大的文件不感兴趣。在我看来,您希望最大上传为 5MB,如果超过了,则返回正确的响应。
您可以在 --- 的异常处理程序中处理
app/Exceptions/Handler.php
FileException
异常。更新render
方法以添加您需要的代码。例如,如果您想返回验证异常,则需要在FileException
异常的异常处理程序中处理验证。这是未经测试的,但应该给你一个大致的想法。
您还可以通过 javascript 进行客户端验证,这样太大的文件实际上永远不会发送到您的服务器,但是客户端可以禁用或删除 javascript,因此最好设置好服务器端处理.
对于客户端验证,如果您将事件处理程序附加到文件输入的“更改”事件,您可以使用
this.files[0].size
检查文件大小,然后执行任何其他操作(禁用表单,删除上传文件等)