Meine vorherige Frage: How to return file from ASP.net 5 web apiDatei von ASP.NET 5 Web API
ich versuche, eine Datei als die Antwort von Web-API-POST-Anfrage zurück.
Ich benutze dnx451 Framework und rc1-final build. Controller-Methode:
[HttpPost("")]
public ActionResult Post([FromBody]DocumentViewModel vm)
{
try
{
if (ModelState.IsValid)
{
var Document = _repository.GetDocumentByGuid(vm.DocumentGuid, User.Identity.Name);
var Params = Helper.ClientInputToRealValues(vm.Parameters, Document.DataFields);
var file = Helper.GeneratePdf(Helper.InsertValues(Params, Document.Content));
FileStream stream = new FileStream(file,FileMode.Open);
return File(stream, "application/pdf", "test.pdf");
}
}
catch (Exception ex)
{
Response.StatusCode = (int)HttpStatusCode.BadRequest;
return null;
}
Response.StatusCode = (int)HttpStatusCode.BadRequest;
return null;
}
Als Ergebnis bekomme ich eine Datei mit dem Namen "Antwort". Nachdem ich es als pdf gespeichert habe, versuche ich es zu öffnen und es wird angezeigt, dass es beschädigt ist. Hoffe, du kannst mir helfen. Ich benutze Postman als Testclient.
Dank
Wenn Sie das Debuggen nicht erreicht der Code die 'Return File()' Linie? Was sind die Inhalte und Header in der Antwort erhalten? – David
Funktioniert Ihre 'Helper.GeneratePdf()' Zeile korrekt? Was ist der Wert von 'Datei'? Kann die Datei geöffnet werden, und haben Sie die generierte Datei überprüft, bevor Sie sie an den Browser gesendet haben? –
Ja, das PDF wird generiert, und ich kann die generierte PDF-Datei aus dem Datei-Explorer öffnen und es ist in Ordnung. –