我使用Uploadify和Kohana,我正在創建文件上傳器。用戶只能上傳幾種類型的文件。MIME,八位字節流和Uploadify
Kohana有很多內置的MIME類型庫。我認爲,檢查MIME類型的上傳文件(它來自Uploadify)與設置的文件擴展名匹配會很酷。這就是爲什麼我製作了一系列允許的MIME類型。
$mimes = (array) Kohana::config('mimes');
$allowed_mimes = array_merge($mimes['bmp'], $mimes['gif'], $mimes['jpg'], $mimes['jpeg'], $mimes['png']);
接下來,我想檢查上傳的文件的MIME類型是$allowed_mimes
陣列。我使用了類似in_array($file['type'], $allowed_mimes)
的東西。讓我意外的是 - 文件的實際MIME是application/octet-stream
。無論如何,上傳的文件是JPEG
圖像。這怎麼可能?
基本思路是我需要檢查文件類型。什麼是最好的方式來做到這一點?
編輯:
一些轉換與我的同事後,我決定最後一個點後檢查字符。像virus.jpeg
是可以接受的,因爲jpeg
就是它的名字。我仍然開放更好的解決方案!
$extension = ltrim(strrchr($file['name'], '.'), '.')
'$ ext = pathinfo($ filename,PATHINFO_EXTENSION);'會得到擴展名的正確方法(我無法理解原始問題?) – Kemo
問題是:如何檢查文件類型? MIME好嗎? 'application/octet-stream'到底是什麼,以及我如何獲得'JPEG'?我的解決方案(請參閱編輯)好嗎? – daGrevis