2014-05-11 21 views
1

今天,我在Laravel 4中使用Validation,並遇到(可能)錯誤。 這是我的驗證規則控制器:Laravel 4圖像驗證錯誤?

$rules = array(
     'title'  => 'min:3|max:30|required', 
     'price'  => 'numeric|required', 
     'avatar'  => 'mimes:jpeg,jpg,png,JPG|max:300', 
     'category_id' => 'numeric' 
); 

當我試圖超過2 MB上傳圖片時,Laravel沒有表現出我IMAGE_SIZE錯誤。 但對於小於2 MB的圖片,它運行良好。 然後,我將max規則更改爲max:2000,並再次上傳了大於2 MB的Image。這次拉拉維爾給了我正確的信息。

我的代碼有什麼問題?

+0

錯誤可能是從你的PHP配置,嘗試改變在php.ini文件 –

+0

的upload_tmp_dirpost_max_size以及post_max_size設置你的問題是關於這個封閉的Github的問題,這是因爲PHP這樣的報道方式文件大小當他們超過你的post_max_size。此問題在Laravel中標記爲已解決。你使用的是什麼版本的Laravel? https://github.com/laravel/framework/issues/2433 – Laurence

+0

@momo但是,當我將post_max_size更改爲更大的數字(如8 MB)時,則當我嘗試上載10 MB圖像時,問題再次發生。我認爲這不是最好的解決方案。 – Hamm

回答

0

您的問題與to this closed Github issue有關,這是因爲PHP報告文件大小超過post_max_size的方式。

您需要在規則中添加'min'。

$rules = array(
     'title'  => 'min:3|max:30|required', 
     'price'  => 'numeric|required', 
     'avatar'  => 'mimes:jpeg,jpg,png,JPG|max:300|min:1', 
     'category_id' => 'numeric' 
); 
+0

我也試過這種方法,但沒有任何改變 – Hamm

+0

嘗試:'avatar'=>'之間:1,300 | mimes:jpeg,jpg, png,JPG' – Laurence

+0

The:min解決方案對我也不起作用。這個問題在Laravel得到解決,但又重新出現了。看到這裏:https://github.com/laravel/framework/issues/4467。 Validator需要更新,希望有人提交PR。 – Jones03