2013-07-22 89 views
2

我從以下的django文檔Django - UploadedFile.content_type檢查上傳文件的標題或擴展名?

UploadedFile.content_type讀

內容類型報頭與所述 文件(例如,文本/無格式或application/PDF)上傳。與用戶提供的任何數據 一樣,您不應該相信上傳的文件實際上是 類型。你仍然需要驗證該文件包含內容 的內容類型標題索賠 - 「信任但要驗證」

,然後通過打印文件的內容類型嘗試這種在我的項目已上傳

print request.FILES['file'].content_type 

它會打印出文件的內容類型,例如文字/疼痛,圖像/ jpeg

但問題是:如果我欺騙該文件。例如,使用記事本刪除圖像/ jpeg文件的標題然後保存,打印件仍然會打印'image/jpeg'。但是,由於標題已被我刪除,無法用圖像查看器打開(雖然文件的擴展名仍然是.jpg),但不應將其標識爲「image/jpeg」文件。

因此,似乎UploadedFile.content_type只是檢查文件的擴展名,因此不是一種安全的方式來檢查和驗證文件類型,並需要其他一些方法來更好地解決檢查問題。我說得對,如果有任何誤解,請糾正我。

非常感謝您的幫助。

回答