2016-10-13 146 views
0

如何檢測給定的URL是否爲要下載的文件?檢測URL是否爲文件下載

我碰到了content-disposition標題,但它似乎並不直接是http 1.1的一部分。

是否有更爲標準的方法來檢測對的GET請求是否實際上是/可以下載的文件?

這是響應不是HTML或JSON或類似的東西,但像圖像,MP3,PDF文件等?

+0

是什麼讓你認爲Content-Disposition不是HTTP的「部分」?見http://www.iana.org/assignments/message-headers/message-headers.xhtml –

+0

@JulianReschke https://www.ietf.org/rfc/rfc2616.txt,第5.5節。 – Thihara

+0

兩年前RFC 2616已經過時。 –

回答

0

我結束了使用content-type來決定它是一個html文件或在給定的URL的另一端的其他類型的文件。

我正在使用content-disposition標題內容來檢測原始文件名,如果它存在,因爲標題在任何地方都不可用。

2

HTTP是一種傳輸協議 - 這與硬盤存儲佈局非常不同。 「文件」的概念根本不存在於HTTP中。沒有比您的計算機硬盤驅動器包含人們在辦公文件系統中看到的實際紙和紙板「文件」。

無論您認爲HTTP消息或URL是否說響應內容不必來自任何計算機文件,也不必由收件人存儲在一箇中。

對HTTP中的任何GET消息的響應總是可以通過發送另一個具有相同URL(也可能是HTTP/1.1變體中的其他頭)的GET請求來「下載」。這是GET消息定義的內容,與文件無關。

+0

我正在尋找一種方法來檢測給定URL的另一端有什麼。例如,谷歌驅動器的共享文件鏈接不能直接下載。響應是html。但我明白你的觀點。 – Thihara

0

可能檢查文件擴展名是否有可能?對不起,如果不知道更多,我不能放大,但我想你可以考慮使用PHP來實現這一點,如果HTML沒有足夠的功能?

+0

不幸的是,它並不那麼簡單:-)。有時,標題中沒有文件名或擴展信息。 – Thihara