Rumah >pembangunan bahagian belakang >C++ >Bolehkah saya Mendapatkan Saiz Fail Jauh Menggunakan Pengepala HTTP?
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!