我的网站托管在共享服务器上。最大上传限制为5MB。如果上传的文件小于5MB,所有验证和文件上传都可以正常工作。但是当一个大于5MB的文件上传时,我看到这个 。 如何验证或强制文件处于服务器的上传限制之下?Laravel最大上传大小限制
回答
你做似乎没有兴趣更改PHP限制以允许更大的文件。它看起来像你想要你最大上传5MB,并返回一个适当的回应,如果它是。
您可以在异常处理程序app/Exceptions/Handler.php
内处理FileException
异常。更新render
方法以添加您需要的代码。例如,如果您想要返回验证异常,则需要在异常处理程序中处理FileException
异常的验证。
public function render($request, Exception $exception)
{
if ($exception instanceof \Symfony\Component\HttpFoundation\File\Exception\FileException) {
// create a validator and validate to throw a new ValidationException
return Validator::make($request->all(), [
'your_file_input' => 'required|file|size:5000',
])->validate();
}
return parent::render($request, $exception);
}
这是未经测试的,但应该给你的一般想法。
你也可以通过javascript做客户端验证,这样一个太大的文件从来就不会真正发送到你的服务器,但是javascript可以被客户端禁用或者删除,所以最好有一个很好的服务器侧面处理设置。
对于客户端验证,如果您将事件处理程序附加到文件输入的“更改”事件,则可以使用this.files[0].size
检查文件大小,然后执行任何其他操作(禁用表单,删除上载的文件等)
这就是我正在寻找的东西。 – baig772
您可以使用Laravel验证规则:
'image_file_input_name' => 'required|mimes:jpeg,bmp,png|size:5000',
大小:值
验证字段必须具有与给定值匹配的大小。 对于字符串数据,该值对应于字符数。对于 数字数据,该值对应于给定的整数值。对于 数组,大小对应于数组的数量。对于文件,大小 对应的文件大小以千字节为单位。
5 MB的限制是由您的虚拟主机提供商设置和可能无法改变。
要上传大于限制的文件,您必须将其上传至零件。
一个laravel包,这样做:https://github.com/jildertmiedema/laravel-plupload
您可以通过最大验证
'file' => 'required|max:5128'; // max file size: 5M
在laravel可以验证这样的检查文件的大小 -
$validator = Validator::make($request->all(), [
'file' => 'max:5120',
]);
该值以千字节为单位。即最大:10240 =最大10MB。 而在jQuery的 -
结合您的输入字段
$('#upFile').bind('change', function() {
//this.files[0].size gets the size of your file and then you can validate accourdingly...
alert(this.files[0].size);
});
希望这将帮助你的onchange事件。
你可以这样做与jQuery/JavaScript的(这意味着该文件将不会被上传,但你可以检查该文件,然后发送到PHP脚本)
$('#myFile').bind('change', function() {
let filesize = this.files[0].size // On older browsers this can return NULL.
let filesizeMB = (filesize/(1024*1024)).toFixed(2);
if(filesizeMB <= 5) {
// Allow the form to be submitted here.
} else {
// Don't allow submission of the form here.
}
});
但总是做服务器端验证反正。 Incase你搬到一个更强大的网站,并仍然希望你的网站没有任何怪癖的工作。
$validator = Validator::make($request->all(), [
'file' => 'max:5120', //5MB
]);
所有这些都没有经过测试,但应该有效。
的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>
- 1. JavaScript上传大小限制
- 2. Internet Explorer中最大文件大小上传限制是多少?
- 3. 最大上传大小?
- 4. AsyncFileUpload限制文件大小上传
- 5. PHP文件上传大小限制
- 6. codeigniter中的上传大小限制
- 7. DWR文件上传大小限制
- 8. JavaScript对象最大大小限制
- 9. emacs:x-popup-menu最大大小限制?
- 10. 最大的文件上传限制PHP
- 11. DataGridView自动调整大小,但限制最大列大小
- 12. 确定Android OpenGLES中的最大/最小纹理大小限制
- 13. 堆栈大小的最大使用限制是否有限制?
- 14. PHP - 最大总上传大小?
- 15. PHP最大上传文件大小
- 16. Plone + Ploneboard最大上传文件大小
- 17. PinchGesture和最大,最小限制
- 18. 限制上传大于20 MB的文件大小[cloudinary api]
- 19. LDAP限制大小限制
- 20. Angular 2文件上传指令,最大并发上传限制
- 21. 定制MTOM绑定和最大上传大小
- 22. XTS大小限制
- 23. Imshow()大小限制
- 24. UIWebview大小限制
- 25. fprintf大小限制
- 26. innerHTML大小限制
- 27. 限制JSpinner大小
- 28. 限制iframe大小
- 29. 块大小的大小限制
- 30. 如何根据视口大小调整元素的大小,并同时“限制”最大和最小大小?
可能你必须在php.ini中更改'upload_max_filesize'值。如果您无权更改ini文件,请联系您的主机提供商以更改此内容 –
有没有其他方法?不更改服务器的上传限制? – baig772
在您的资源文件夹中添加一个htaccess ..然后添加这一行..'php_value upload_max_filesize xM'和'php_value post_max_size xM'其中x =任意数值..例如:100M = 100mb – Demonyowh