2013-05-10 34 views
0

我爲我的一個項目使用了Symfony2框架。在這一個,我想上傳一個圖像。在遵循Symfony2的食譜的同時這很容易實現。它在我的本地機器上運行得非常好。但是當我將整個應用程序放在我的遠程服務器(Planethoster.net共享主機)上時,由於Type-Mime擴展猜測,它不起作用。事實上,他們不能在他們的服務器上啓用...(phpinfo顯示--disable-fileinfo)使用Symfony2上傳圖片文件而沒有猜測?

所以,基本上想法是知道是否有解決方案做同樣的行動(上傳圖片)任何擴展猜測?

謝謝

回答

3

您如何看待過濾文件名?用最後三個字符,你會知道擴展名。檢查出UploadedFile,有一個getClientOriginalName()方法。我要做的就是通過.分解它,獲取結果數組的第二個條目,然後解析它以完成你想要做的事情。

你想要一個代碼的例子嗎?

+0

謝謝的是我要上載被中止對於任何錯誤的啞劇式。即如果用戶重命名擴展名,我希望我的應用程序阻止文件上傳。到目前爲止,我已經完成了類似於你所建議的我的事情,但我對此並不滿意。 – Hannibal61 2013-05-22 17:10:29

+0

你好,那你怎麼拒絕上傳?我想到的第一件事是一個例外,但我不完全確定它們可以從實體中拋出。 – Videl 2013-05-22 20:42:46

+0

或getClientOriginalExtension() – 2013-12-14 01:25:17

1

要在使用框架的Symfony 2

無法猜測MIME類型,因爲沒有猜測,都可以上傳文件修復異常。

使PHP擴展php_fileinfo,要做到這一點找到你的php.ini文件並取消以下行

; windows 
extension=php_fileinfo.dll 

; linux 
extension=php_fileinfo.so