Maison >développement back-end >C++ >Comment puis-je gérer les téléchargements de fichiers dans l'API Web ASP.NET sans stockage sur disque ?
Utilisation de HttpClient pour gérer les téléchargements de fichiers dans l'API Web ASP.NET
La gestion des téléchargements de fichiers est une exigence courante lors du développement de services RESTful à l'aide de l'API Web ASP.NET. Cet article explique comment utiliser le framework Web API pour recevoir une image ou un fichier POSTé par une application client.
Le code original utilise le paramètre HttpPostedFile
, cette approche nécessite un emplacement physique sur le serveur pour enregistrer le fichier téléchargé. Cependant, cet article décrit une alternative qui conserve tout en mémoire sans écrire dans le système de fichiers.
Le code mis à jour utilise MultipartMemoryStreamProvider
pour lire les données de formulaire en plusieurs parties pour les requêtes POST. Il parcourt le contenu des fichiers, accédant aux noms de fichiers et à leurs données binaires. Cette approche permet le traitement des fichiers téléchargés sans avoir besoin de stockage sur le système de fichiers.
Voici le code modifié :
<code class="language-csharp">[HttpPost("api/upload")] public async Task<IHttpActionResult> Upload() { if (!Request.Content.IsMimeMultipartContent()) throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); var provider = new MultipartMemoryStreamProvider(); await Request.Content.ReadAsMultipartAsync(provider); foreach (var file in provider.Contents) { var filename = file.Headers.ContentDisposition.FileName.Trim('\"'); var buffer = await file.ReadAsByteArrayAsync(); // 使用文件名和其二进制数据执行任何操作。 } return Ok(); }</code>
Cette solution offre un moyen plus flexible et plus efficace de gérer les téléchargements de fichiers dans les services API Web, évitant ainsi le besoin de stockage dans le système de fichiers et permettant un traitement transparent du contenu téléchargé.
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!