我想檢查放置在某個URL上的文件的文件類型。現在我知道這樣做的方法有兩種:開始下載,檢查文件類型,取消下載
- (從HTTP請求響應或至少
Location
)檢查結束URL文件 - 檢查
Content-Type
(MIME類型)
從兩者的這些,第一個是更多不可靠的,但第二個並不總是保證最好的結果。所以我想,在資源下載的時候發送GET
請求並檢查文件類型,然後取消下載是不可能的?
如果我開始在瀏覽器中下載文件,我也可以看到文件擴展名。這在Python中可行嗎?
我想檢查放置在某個URL上的文件的文件類型。現在我知道這樣做的方法有兩種:開始下載,檢查文件類型,取消下載
Location
)檢查結束URL文件Content-Type
(MIME類型)從兩者的這些,第一個是更多不可靠的,但第二個並不總是保證最好的結果。所以我想,在資源下載的時候發送GET
請求並檢查文件類型,然後取消下載是不可能的?
如果我開始在瀏覽器中下載文件,我也可以看到文件擴展名。這在Python中可行嗎?
如果您想下載該文件的擴展名,您可以查看Content-Disposition
的標頭。一個典型的例子:
Content-disposition: attachment; filename=<downloadFilename>
如果響應包含上面的頭,你可以使用正則表達式來獲取文件名,然後把你的行動。如果標題不存在,您將不得不退回到您在問題中提到的方法。
如果您感興趣的文件類型的下載,我建議堅持MIME類型 - 這就是更可靠(通常情況下)
HTH
Content-disposition參數很少設置。 – RevMoon 2013-04-15 12:53:58
只是通過一個開放的連接到您的libmagic包裝庫,它應該在確定文件類型時停止讀取。 – Blender 2013-04-07 04:15:53