Rückgabe der Dateiinhalte Ergebnisse in ASP.net Web API
während fileContentresult
funktioniert in MVC -Controllern gut für das Servieren von Dateien wie PDFs und portiert dies direkt an eine apicontroller
vor Herausforderungen. Ein einfacher Versuch, StreamContent
zu verwenden, schlägt häufig fehl, was zu JSON -Metadaten anstelle der Datei selbst führt. Die Lösung liegt in der Nutzung von bytearrayContent
.
Dieser überarbeitete Code -Snippet gibt effektiv eine PDF -Datei als Dateiinhaltsergebnis aus einer Web -API zurück:
[HttpGet]
public HttpResponseMessage Generate()
{
using (var stream = new MemoryStream())
{
// Process the stream to generate PDF content here...
var result = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new ByteArrayContent(stream.ToArray())
};
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "CertificationCard.pdf"
};
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
return result;
}
}
Der Schlüssel verwendet bytearrayContent
, um die Bytes der Datei zu komprilen und den contentDisposition
Header in "Anhang" zu setzen, um einen Download aufzunehmen. Der contentType
Header sorgt für die ordnungsgemäße Handhabung des Kunden. Beachten Sie die Verwendung von mit
, um sicherzustellen, dass die memorstream
ordnungsgemäß entsorgt wird. Dieser Ansatz ermöglicht eine nahtlose Zustellung von PDFs und anderen Dateitypen über Ihre Web -API.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3