我允許上傳文件到我的C#MVC網站,我限制這些類型基於擴展目前,但也覺得我需要一個服務器端檢查,以確認他們不只是重命名它。文件Mime類型檢查
是否有一種技術可以用來檢查我需要的所有類型或我可以使用的庫,這對我們有幫助?
我看到有人檢查文件的前幾個字節,但我很害怕我會錯過什麼?
感謝您的幫助。
編輯:
有很多的建議here。我將調查其中的一些解決方案。
我允許上傳文件到我的C#MVC網站,我限制這些類型基於擴展目前,但也覺得我需要一個服務器端檢查,以確認他們不只是重命名它。文件Mime類型檢查
是否有一種技術可以用來檢查我需要的所有類型或我可以使用的庫,這對我們有幫助?
我看到有人檢查文件的前幾個字節,但我很害怕我會錯過什麼?
感謝您的幫助。
編輯:
有很多的建議here。我將調查其中的一些解決方案。
我結束了從here混合一些解決方案,因爲我沒有使用HttpFileBase,只有文件流,我不得不讀取流的前幾個字節來確定MIME類型。
注意:我不使用註冊表技術,因爲我不知道服務器上將安裝或不會安裝什麼。
如果您將文件讀取爲HttpPostedFile,則可以獲取與MIME類型相同的內容類型。
,那麼你可以做到以下幾點:
if (myFile.ContentType == "video/mpeg")
{
// Do your thing
}
else{
// error
}
http://stackoverflow.com/questions/4019874/is-httppostedfile-contenttype-a-flawless-way-to-validate-一個上傳文件 –
如果你得到的只是一堆字節,那麼恐怕會有點困難。如果你只是處理圖像,你可以隨時檢查特定的標題。 –
它將是圖像類型以及其他MIME類型,如doc,xls,pdf等。 – shenku