mia precedente domanda: How to return file from ASP.net 5 web apiRitorno da ASP.NET 5 Web API
Sto cercando di restituire un file come la risposta da richiesta Web API POST.
Utilizzo il framework dnx451 e il build rc1-final. Metodo controller:
[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;
}
Come risultato ottengo un file con il nome "risposta". Dopo averlo salvato come pdf, provo ad aprirlo e dice che è danneggiato. Spero che tu possa aiutarmi. Sto usando Postman come client di test.
Grazie
Durante il debug questo, non il codice raggiunge il 'ritorno file)' linea (? Qual è il contenuto e le intestazioni ricevute nella risposta? – David
La tua riga 'Helper.GeneratePdf()' sta funzionando correttamente? Qual è il valore di 'file'? Il file può essere aperto e hai ispezionato il file generato prima di inviarlo al browser? –
sì, il pdf viene generato e posso aprire il file pdf generato da File explorer e va bene. –