我的網站託管在共享服務器上。最大上傳限制爲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. SugarCRM:ImageField上傳大小限制
- 2. JavaScript上傳大小限制
- 3. apache和gunicorn的最大(限制)上傳文件大小
- 4. Internet Explorer中最大文件大小上傳限制是多少?
- 5. 最大上傳大小?
- 6. DWR文件上傳大小限制
- 7. PHP文件上傳大小限制
- 8. codeigniter中的上傳大小限制
- 9. fineuploader上傳元素的限制大小
- 10. Spring + DWR fie上傳大小限制
- 11. 春季上傳文件大小限制
- 12. Gerrit限制文件上傳大小
- 13. 如何限制上傳大小?
- 14. 如何限制上傳文件大小?
- 15. 限制上傳文件大小在PHP
- 16. AsyncFileUpload限制文件大小上傳
- 17. 最大OpenGL FrameBuffer對象大小限制?
- 18. emacs:x-popup-menu最大大小限制?
- 19. np.fromfile文件大小的最大限制?
- 20. JavaScript對象最大大小限制
- 21. 鉻中的Indexeddb最大大小限制
- 22. 最大文件上傳限制
- 23. 最大的文件上傳限制PHP
- 24. libGDX:FrameBuffer大小限制==最大紋理大小?
- 25. DataGridView自動調整大小,但限制最大列大小
- 26. 什麼是Resourcestring最大大小和最大數量限制?
- 27. 確定Android OpenGLES中的最大/最小紋理大小限制
- 28. 堆棧大小的最大使用限制是否有限制?
- 29. PHP最大上傳文件大小
- 30. Plone + Ploneboard最大上傳文件大小
可能你必須在php.ini中更改'upload_max_filesize'值。如果您無權更改ini文件,請聯繫您的主機提供商以更改此內容 –
有沒有其他方法?不更改服務器的上傳限制? – baig772
在您的資源文件夾中添加一個htaccess ..然後添加這一行..'php_value upload_max_filesize xM'和'php_value post_max_size xM'其中x =任意數值..例如:100M = 100mb – Demonyowh