2010-10-23 13 views
0

說我讓用戶上傳文件到我的服務器,並讓我們讓用戶下載它們。我想將mime類型設置爲除application/octet-stream之外的其他類型,這樣,如果瀏覽器可以打開它們,它確實(例如,對於圖像,pdf文件,純文本文件等)。當然,由於文件是由用戶上傳,我不能相信文件擴展名等。我能否可靠地找出正確的MIME類型來提供不受信任的內容?

是否有一個很好的庫來找出什麼樣的MIME類型與任意blob?最好使用Python :-)

謝謝!

回答

1

請注意文本文件:無法知道它們是什麼編碼,也沒有可靠的猜測方式,尤其是因爲Windows中創建的大多數都是8位MBCS編碼,無需啓發式語言就無法區分。您需要知道編碼 - 而不僅僅是MIME類型 - 才能將文件的完整Content-Type設置爲可在瀏覽器中查看。如果你想允許上傳和顯示文本,使用HTML文本格式比原始文件上傳更安全。

另外,請注意,一個文件可以是多種文件類型;例如,自解壓縮ZIP是有效的Windows可執行文件和ZIP文件,並且可以被視爲。

相關問題