Abfrage:
Es ist wünschenswert, die Größe einer gehosteten Remote-Datei abzurufen an einem HTTP-Endpunkt, bevor der Download gestartet wird. Ist es möglich, HTTP-Header zu nutzen, um dies zu erreichen, und wenn ja, wie kann auf den HTTP-Header für eine bestimmte Datei zugegriffen werden, um deren Größe zu ermitteln?
Lösung:
Die meisten HTTP-Server bieten einen Mechanismus zum Abrufen von Dateimetadaten, einschließlich der Größe, ohne die gesamte Datei zu übertragen. Dies ist als HEAD-Methode bekannt. So rufen Sie die Dateigröße aus HTTP-Headern mithilfe der HEAD-Methode in C# ab:
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; }
Vorbehalt:
Während die meisten Server die HEAD-Methode unterstützen, kann dies bei einigen der Fall sein nicht zulassen oder den Header „Content-Length“ in ihrer Antwort weglassen. In solchen Fällen kann es erforderlich sein, die Datei herunterzuladen, um ihre Größe zu bestimmen. Viele Server stellen diese Informationen jedoch der Einfachheit halber zur Verfügung.
Das obige ist der detaillierte Inhalt vonKann ich die Größe einer Remote-Datei mithilfe von HTTP-Headern ermitteln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!