2013-04-07 38 views
1

我想檢查放置在某個URL上的文件的文件類型。現在我知道這樣做的方法有兩種:開始下載,檢查文件類型,取消下載

  1. (從HTTP請求響應或至少Location)檢查結束URL文件
  2. 檢查Content-Type(MIME類型)

從兩者的這些,第一個是更多不可靠的,但第二個並不總是保證最好的結果。所以我想,在資源下載的時候發送GET請求並檢查文件類型,然後取消下載是不可能的?

如果我開始在瀏覽器中下載文件,我也可以看到文件擴展名。這在Python中可行嗎?

+1

只是通過一個開放的連接到您的libmagic包裝庫,它應該在確定文件類型時停止讀取。 – Blender 2013-04-07 04:15:53

回答

0

如果您想下載該文件的擴展名,您可以查看Content-Disposition的標頭。一個典型的例子:

Content-disposition: attachment; filename=<downloadFilename> 

如果響應包含上面的頭,你可以使用正則表達式來獲取文件名,然後把你的行動。如果標題不存在,您將不得不退回到您在問題中提到的方法。

如果您感興趣的文件類型的下載,我建議堅持MIME類型 - 這就是更可靠(通常情況下)

HTH

+0

Content-disposition參數很少設置。 – RevMoon 2013-04-15 12:53:58