Heim > Backend-Entwicklung > C++ > Wie akzeptiere ich Datei-POST-Anfragen in der ASP.NET-Web-API ordnungsgemäß?

Wie akzeptiere ich Datei-POST-Anfragen in der ASP.NET-Web-API ordnungsgemäß?

Patricia Arquette
Freigeben: 2025-01-24 01:12:09
Original
753 Leute haben es durchsucht

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

Verarbeiten von Datei-Uploads in der ASP.NET-Web-API

Diese Anleitung zeigt, wie Sie POST-Dateien, z. B. Bilder, in der ASP.NET-Web-API korrekt empfangen. Das folgende Beispiel vermeidet das direkte Speichern von Dateien im Dateisystem des Servers und behält stattdessen die Dateidaten im Speicher.

Verbesserte Datei-Upload-Methode:

Das folgende Code-Snippet verwendet MultipartMemoryStreamProvider, um Datei-Uploads innerhalb der Web-API effizient abzuwickeln.

<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>
Nach dem Login kopieren

Diese Methode prüft auf mehrteilige Inhalte, extrahiert Dateinamen, validiert Dateitypen, liest die Dateidaten in ein Byte-Array und ermöglicht dann die benutzerdefinierte Verarbeitung des buffer (der Binärdaten der Datei). Die Fehlerbehandlung wird durch die Rückgabe geeigneter HTTP-Statuscodes verbessert. Denken Sie daran, die notwendigen Fehlerbehandlungs- und Sicherheitsmaßnahmen für Produktionsumgebungen hinzuzufügen.

Das obige ist der detaillierte Inhalt vonWie akzeptiere ich Datei-POST-Anfragen in der ASP.NET-Web-API ordnungsgemäß?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage