Maison > développement back-end > C++ > Comment accepter correctement les requêtes POST de fichiers dans l'API Web ASP.NET ?

Comment accepter correctement les requêtes POST de fichiers dans l'API Web ASP.NET ?

Patricia Arquette
Libérer: 2025-01-24 01:12:09
original
751 Les gens l'ont consulté

How to Properly Accept File POST Requests in ASP.NET Web API?

Gestion des téléchargements de fichiers dans l'API Web ASP.NET

Ce guide montre comment recevoir correctement des fichiers POST, tels que des images, dans l'API Web ASP.NET. L'exemple ci-dessous évite d'enregistrer les fichiers directement dans le système de fichiers du serveur, mais conserve les données du fichier en mémoire.

Méthode de téléchargement de fichiers améliorée :

L'extrait de code suivant utilise MultipartMemoryStreamProvider pour gérer efficacement les téléchargements de fichiers au sein de l'API Web.

<code class="language-csharp">[HttpPost("api/upload")]
public async Task<IHttpActionResult> Upload()
{
    // Check if the request content is multipart
    if (!Request.Content.IsMimeMultipartContent())
    {
        return BadRequest("Unsupported media type.  Please use multipart/form-data.");
    }

    var provider = new MultipartMemoryStreamProvider();
    await Request.Content.ReadAsMultipartAsync(provider);

    foreach (var fileContent in provider.Contents)
    {
        // Extract filename, removing surrounding quotes
        var filename = fileContent.Headers.ContentDisposition.FileName.Trim('"');

        // Validate file type (example: only allow images)
        string[] allowedExtensions = { ".jpg", ".jpeg", ".gif", ".bmp", ".png" };
        if (!allowedExtensions.Any(ext => filename.EndsWith(ext, StringComparison.OrdinalIgnoreCase)))
        {
            return BadRequest("Invalid file type.");
        }

        // Read file data into a byte array
        var buffer = await fileContent.ReadAsByteArrayAsync();

        // Process the file data (e.g., save to database, image manipulation)
        // ... your file processing logic here ...
    }

    return Ok();
}</code>
Copier après la connexion

Cette méthode vérifie le contenu en plusieurs parties, extrait les noms de fichiers, valide les types de fichiers, lit les données du fichier dans un tableau d'octets, puis permet un traitement personnalisé des buffer (les données binaires du fichier). La gestion des erreurs est améliorée en renvoyant les codes d'état HTTP appropriés. N'oubliez pas d'ajouter la gestion des erreurs et les mesures de sécurité nécessaires pour les environnements de production.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal