2015-07-28 59 views
2

我的驗證規則,Laravel MIME類型的猜測替代

// Get request input 
$caption = Request::input('caption'); 
$photo = Request::file('photo'); 

// Request validation 
$validator = Validator::make(
     [ 
      'caption' => $caption, 
      'photo' => $photo 
     ], 
     [ 
      'caption' => 'required', 
      'photo' => 'mimes:jpeg,jpg' 
     ] 
    ); 

// If validation fails 
if($validator->fails()) { 
    return redirect()->back()->withInput()->withErrors($validator); 
} 

錯誤!

LogicException在MimeTypeGuesser.php行127:無法猜測 MIME類型,因爲沒有猜測,可用(你啓用 php_fileinfo擴展?)

我知道解決的辦法是讓在php.ini設置中擴展名爲php_fileinfo.dll

但是我在一個共享主機上,我已經和服務器管理員討論過啓用這個擴展。不幸的是,他們拒絕了我的要求,顯示了一些安全原因。

是他們的任何替代品,所以我可以驗證我的圖像?

+1

顯示你的代碼,你嘗試猜測mimetype – M0rtiis

+0

@ M0rtiis請檢查我的更新問題,但它不是關於現有的代碼不工作,事實是php_fileinfo.dll擴展未啓用在我的主機,所以「mimes :jpeg,jpg「不起作用。 –

回答

0

有沒有辦法讓MIME類型不php_fileinfo.dllSAFELY,(mime_content_type - 不建議使用)

您可以從文件擴展名得到它(使用財產以後像https://github.com/yiisoft/yii/blob/master/framework/utils/mimeTypes.php),並創建自己的驗證規則。但它不安全。

傷心,但真正有用的建議將是更換託管服務器。

+0

順便說一句,寄主給你。 php_fileinfo.dll與安全無關。這與他們的懶惰或能力有關 – M0rtiis