Gestion des téléchargements de fichiers dans l'API Web ASP.NET MVC
Cet exemple montre comment traiter les téléchargements de fichiers à l'aide de multipart/form-data dans une API Web ASP.NET MVC.
La méthode Upload
ci-dessous utilise Request.Content.IsMimeMultipartContent()
pour vérifier si la demande est un formulaire en plusieurs parties. Sinon, il renvoie un HttpResponseException
indiquant un type de média non pris en charge. Sinon, il utilise MultipartMemoryStreamProvider
pour lire les données en plusieurs parties de manière asynchrone. Le code parcourt ensuite chaque fichier, extrayant le nom de fichier et le contenu sous forme de tableau d'octets. Vous pouvez adapter la logique de traitement des fichiers à vos besoins spécifiques.
<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); // Process uploaded files foreach (var file in provider.Contents) { var filename = file.Headers.ContentDisposition.FileName.Trim('"'); var buffer = await file.ReadAsByteArrayAsync(); // Save the file, process the data, or perform other actions here. // Example: Save to disk // var filePath = Path.Combine(Server.MapPath("~/App_Data"), filename); // File.WriteAllBytes(filePath, buffer); } return Ok(); }</code>
Ce code amélioré fournit des commentaires plus clairs et une explication plus concise du processus. N'oubliez pas de remplacer l'exemple d'enregistrement de fichier commenté par la logique de gestion de fichier souhaitée.
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!