2017-08-07 93 views
0

是否有任何已經實現的方式來驗證Symfony中的文件擴展名?文件和圖像驗證程序只能驗證MIME類型。有沒有辦法做到這一點,或者我必須使用自定義驗證器/回調?Symfony3中的文件擴展名驗證

+0

爲什麼要驗證它?你想知道安全嗎? – Keloo

回答

2

如果您要驗證的所有內容都是文件擴展名,則可以使用RegexValidator。請記住,文件擴展名不能保證文件的內容。有人可以將可執行文件上傳爲.png。

new RegexValidator('/(.+)(\.jpg|\.png|\.gif)$/') 

將匹配任何文件名以.jpg結束和.png或.gif

如果要在它更多的控制(例如,通過允許擴展的陣列)我會建議使用CallbackValidator或製作自己的。祝你好運!

+0

你對這個文件的內容是正確的。但是,如果我只驗證MIME類型,那麼有人可以在其註釋中上傳包含有效png內容和php代碼的'.php'擴展名的有效php文件。這就是爲什麼MIME類型和文件擴展名都應該被驗證。 Sf開發者沒有提供原生方法來執行此操作有點令人傷心 – user2394156

+0

確實如此,但這兩種方法都沒有真正保護PHP代碼的有效png內容。沒有上傳文件的最簡單方法是利用PHP,而不是讓PHP在上傳後觸摸上傳的文件,而是從Web服務器靜態地爲它們提供服務。 –

相關問題