Sto memorizzando i documenti in un database e ho una API per il download dei documenti.API Asp.Net MVC 4: download di docx in errore in IE8
Il download di docx e xlsx funziona bene in IE9, Chrome e FF, ma non riesce in un vero e proprio IE8 (IE 9 in modalità IE8 anche funziona)
Il messaggio di errore ottengo è il seguente:.
Impossibile scaricare 393 da idler2.
Impossibile aprire questo sito Internet. Il sito richiesto è non disponibile o non può essere trovato. Per favore riprova più tardi.
con la seguente intestazione della risposta: HTTP/1.1 200 OK Cache-Control: no-cache Pragma: no-cache
Content-Length: 10255
Content-Type: application/octet-stream
Expires: -1
Server: Microsoft-IIS/7.5
Content-Disposition: attachment; filename=document.docx
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Sat, 23 Mar 2013 11:30:41 GMT
Questo è il mio metodo API:
public HttpResponseMessage GetDocumentContent(int id)
{
Document document = Repository.StorageFor<Client>().GetDocument(id);
HttpResponseMessage response = Request.CreateResponse(System.Net.HttpStatusCode.OK);
response.Content = new ByteArrayContent(document.GetBuffer());
response.Content.Headers.ContentLength = document.GetBuffer().Length;
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
//FileName = document.GetFileName(),
FileName = "document.docx",
DispositionType = "attachment"
};
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
return response;
}
Ho provato diverse varianti sulla disposizione del contenuto e sull'intestazione del contenuto, ma senza fortuna ..
Spot on! Grazie mille. – Frans
funziona perfettamente, grazie! –
+1: ha avuto il problema, risolto usando la tua risposta, ma ha un commento aggiuntivo: si è manifestato in IE 11, Google Chrome e Firefox 43.0.4, ma dipendeva dalle dimensioni del PDF che stavamo richiedendo: il limite era trovato per essere circa 50 KB ... politiche di caching diverse in base alla dimensione !? – dlatikay