首頁 > 後端開發 > C++ > 我可以使用 HTTP 標頭來取得遠端檔案的大小嗎?

我可以使用 HTTP 標頭來取得遠端檔案的大小嗎?

Linda Hamilton
發布: 2025-01-03 01:02:41
原創
734 人瀏覽過

Can I Get a Remote File's Size Using HTTP Headers?

從標頭取得HTTP 檔案大小

查詢:

需要擷取的遠端檔案的大小開始下載之前在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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板