查詢:
需要擷取的遠端檔案的大小開始下載之前在HTTP 端點處。利用 HTTP 標頭來實現此目的是否可行?如果可以,如何存取特定檔案的 HTTP 標頭來取得其大小?
解決方案:
大多數 HTTP 伺服器提供了一種檢索檔案元資料(包括大小)的機制,而無需傳輸整個檔案。這稱為 HEAD 方法。以下是如何使用C# 中的HEAD 方法從HTTP 標頭檢索檔案大小:
public long GetFileSize(string url) { long result = -1; System.Net.WebRequest req = System.Net.WebRequest.Create(url); req.Method = "HEAD"; using (System.Net.WebResponse resp = req.GetResponse()) { if (long.TryParse(resp.Headers.Get("Content-Length"), out long ContentLength)) { result = ContentLength; } } return result; }
警告:
雖然大多數伺服器支援HEAD 方法,但有些伺服器可能會支援HEAD 方法。不允許,或可能會在回應中省略“Content-Length”標頭。在這種情況下,可能需要下載文件以確定其大小。然而,許多伺服器為了方便起見提供了此資訊。
以上是我可以使用 HTTP 標頭來取得遠端檔案的大小嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!