Heim >Backend-Entwicklung >C++ >Wie akzeptiere ich Datei-POSTs in der 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:
IsMimeMultipartContent()
:Überprüft den mehrteiligen Inhaltstyp der Anfrage.MultipartMemoryStreamProvider
: Verwaltet die mehrteiligen Daten im Speicher.ReadAsMultipartAsync()
: Analysiert die mehrteiligen Daten in einzelne Komponenten.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!