2011-06-26 120 views
2

我已經設置了「Uploadify」將文件上傳到我的服務器,我用CodeIgniter的文件上傳庫處理它們。奇怪的CodeIgniter文件上傳錯誤

不過,我認爲Uploadify改變文件的MIME類型,或做別的事情奇怪導致笨送「文件類型是不允許的」錯誤,儘管它是允許的。

E.g我允許的JPEG文件,但是當我使用他們上傳Uploadify,我得到這個錯誤。

有沒有解決方法?基本上,我只想要允許圖像上傳,例如.jpg,.jpeg,.bmp,.png。我必須手動檢查文件的擴展名,還是有更好的選擇?

回答

2

你是正確的,uploadify使用於大多數(全部?)它上傳文件的MIME類型application/octet-stream。我認爲這實際上是由Flash處理上傳引起的,但我不是100%確定的。

在您的控制器中,您處理上傳時,放入print_r($_FILES)並查看MIME類型,然後將其添加到您的application/config/mimes.php文件中。

因此,在您mimes.php文件,你可能會碰到這樣的:

'jpg' => array('image/jpeg', 'image/pjpeg', 'application/octet-stream'), 
+0

的問題是,用戶可以找出哪個uploadify上傳的URL,然後,他可以手動上傳惡意文件到url並傳遞MIME類型的八位字節流,它將被接受。我已經解決了'getImageSize()'來確認文件的圖像與否。 –

+0

是的,這是一個問題,不幸的是它是一個Uploadify的問題。上傳之後,兩種可能的解決方案都是通過PHP的GD庫重新創建上傳的圖像(任何非圖像文件都會引發錯誤)或找到另一個上傳腳本。 – tplaner