Requête :
Il est souhaitable de récupérer la taille d'un fichier distant hébergé à un point de terminaison HTTP avant de lancer le téléchargement. Est-il possible d'exploiter les en-têtes HTTP pour y parvenir, et si oui, comment accéder à l'en-tête HTTP d'un fichier spécifique pour obtenir sa taille ?
Solution :
La plupart des serveurs HTTP fournissent un mécanisme permettant de récupérer les métadonnées du fichier, y compris sa taille, sans transférer l'intégralité du fichier. C'est ce qu'on appelle la méthode HEAD. Voici comment récupérer la taille du fichier à partir des en-têtes HTTP à l'aide de la méthode HEAD en 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; }
Attention :
Bien que la plupart des serveurs prennent en charge la méthode HEAD, certains peuvent ne l'autorisez pas ou peuvent omettre l'en-tête "Content-Length" dans leur réponse. Dans de tels cas, il peut être nécessaire de télécharger le fichier pour déterminer sa taille. Cependant, de nombreux serveurs fournissent ces informations pour plus de commodité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!