Rumah >pembangunan bahagian belakang >C++ >Bolehkah saya Mendapatkan Saiz Fail Jauh Menggunakan Pengepala HTTP?

Bolehkah saya Mendapatkan Saiz Fail Jauh Menggunakan Pengepala HTTP?

Linda Hamilton
Linda Hamiltonasal
2025-01-03 01:02:41734semak imbas

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

Mendapatkan Saiz Fail HTTP daripada Pengepala

Pertanyaan:

Adalah wajar untuk mendapatkan semula saiz fail jauh yang dihoskan pada titik akhir HTTP sebelum memulakan muat turun. Adakah mungkin untuk memanfaatkan pengepala HTTP untuk mencapai ini, dan jika ya, bagaimanakah pengepala HTTP untuk fail tertentu boleh diakses untuk mendapatkan saiznya?

Penyelesaian:

Kebanyakan pelayan HTTP menyediakan mekanisme untuk mendapatkan semula metadata fail, termasuk saiz, tanpa memindahkan keseluruhan fail. Ini dikenali sebagai kaedah HEAD. Berikut ialah cara untuk mendapatkan semula saiz fail daripada pengepala HTTP menggunakan kaedah HEAD dalam C#:

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;
}

Kaveat:

Walaupun kebanyakan pelayan menyokong kaedah HEAD, sesetengah mungkin tidak membenarkannya atau mungkin meninggalkan pengepala "Panjang Kandungan" dalam respons mereka. Dalam kes sedemikian, mungkin perlu memuat turun fail untuk menentukan saiznya. Walau bagaimanapun, banyak pelayan menyediakan maklumat ini untuk kemudahan.

Atas ialah kandungan terperinci Bolehkah saya Mendapatkan Saiz Fail Jauh Menggunakan Pengepala HTTP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn