Heim >Backend-Entwicklung >C++ >Wie akzeptiere ich Datei-POSTs in der ASP.NET MVC-Web-API?

Wie akzeptiere ich Datei-POSTs in der ASP.NET MVC-Web-API?

DDD
DDDOriginal
2025-01-24 01:26:09437Durchsuche

How to Accept File POSTs in ASP.NET MVC Web API?

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

Die ASP.NET-Web-API erfordert einen speziellen Ansatz für die Verarbeitung von Datei-Uploads, der sich von herkömmlichen ASP.NET MVC-Methoden unterscheidet. Der Parameter HttpPostedFile ist nicht direkt kompatibel. Die Lösung besteht darin, mehrteilige Inhalte zu nutzen.

Mehrteiliger Inhalt: Der Schlüssel zum Datei-Upload

Mehrteilige Inhalte sind für das Hochladen von Web-API-Dateien von entscheidender Bedeutung. Es kombiniert effizient Text- und Dateidaten in einer einzigen HTTP-Anfrage.

Erstellen einer Controller-Aktion für Datei-Uploads

Eine Controller-Aktion mit Task<IHttpActionResult> ist ideal für die asynchrone Dateiverarbeitung. Hier ist ein Beispiel:

<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();

        // File processing logic here (e.g., save to disk, database, etc.)
    }

    return Ok();
}</code>

Code-Erklärung:

  1. IsMimeMultipartContent():Überprüft den mehrteiligen Inhaltstyp der Anfrage.
  2. MultipartMemoryStreamProvider: Verwaltet die mehrteiligen Daten im Speicher.
  3. ReadAsMultipartAsync(): Analysiert die mehrteiligen Daten in einzelne Komponenten.
  4. Dateiiteration: Der Code durchläuft jeden Dateiteil, extrahiert den Dateinamen und liest die Daten in ein Byte-Array.
  5. Dateiverarbeitung: Hier implementieren Sie Ihre Dateiverarbeitungslogik (Speichern, Verarbeiten usw.).
  6. Ok(): Gibt eine erfolgreiche HTTP-Antwort zurück.

Fazit:

Dieser Ansatz bietet eine zuverlässige Methode zum Verarbeiten von Datei-Uploads in der ASP.NET-Web-API. Die Verwendung mehrteiliger Inhalte und MultipartMemoryStreamProvider gewährleistet eine effiziente und robuste Datei-Upload-Verarbeitung innerhalb Ihrer Web-API-Dienste.

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

Stellungnahme:
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