Heim >Backend-Entwicklung >C++ >Wie kann ich Datei-Uploads in der ASP.NET-Web-API ohne Festplattenspeicher verarbeiten?
Verwenden von HttpClient zum Verarbeiten von Datei-Uploads in der ASP.NET-Web-API
Die Handhabung von Datei-Uploads ist eine häufige Anforderung bei der Entwicklung von RESTful-Diensten mithilfe der ASP.NET-Web-API. In diesem Artikel wird erläutert, wie Sie das Web-API-Framework verwenden, um ein Bild oder eine Datei zu empfangen, die von einer Clientanwendung gepostet wurde.
Der Originalcode verwendet den Parameter HttpPostedFile
. Dieser Ansatz erfordert einen physischen Speicherort auf dem Server, um die hochgeladene Datei zu speichern. Dieser Artikel beschreibt jedoch eine Alternative, die alles im Speicher behält, ohne in das Dateisystem zu schreiben.
Der aktualisierte Code verwendet MultipartMemoryStreamProvider
, um mehrteilige Formulardaten für POST-Anfragen zu lesen. Es durchläuft Dateiinhalte und greift auf Dateinamen und deren Binärdaten zu. Dieser Ansatz ermöglicht die Verarbeitung hochgeladener Dateien, ohne dass ein Dateisystemspeicher erforderlich ist.
Das Folgende ist der geänderte Code:
<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(); // 使用文件名和其二进制数据执行任何操作。 } return Ok(); }</code>
Diese Lösung bietet eine flexiblere und effizientere Möglichkeit, Datei-Uploads in Web-API-Diensten zu verarbeiten, wodurch die Notwendigkeit einer Dateisystemspeicherung entfällt und eine nahtlose Verarbeitung hochgeladener Inhalte ermöglicht wird.
Das obige ist der detaillierte Inhalt vonWie kann ich Datei-Uploads in der ASP.NET-Web-API ohne Festplattenspeicher verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!