J'ai une action de contrôleur qui renvoie un document pdf. En fonction d'une variable de changement de site, il choisira l'un des nombreux fichiers sources, le renommera et le renverra au navigateur. Cela fonctionne parfaitement sur Chrome et Firefox, mais, sur IE8, la boîte de dialogue de téléchargement apparaît, puis le messagebox d'erreur suivant ...ASP.Net MVC FilePathResult Échec dans IE
« Internet Explorer ne peut pas télécharger FullTermsAndConditions de www.mydomain.com.
Internet Explorer n'a pas pu ouvrir le site Internet Le site demandé est indisponible ou ne peut pas être trouvé . Veuillez réessayer plus tard. "
Ceci est mon code ...
public ActionResult FullTermsAndConditions()
{
var targetFileName = LookupTargetFileName();
var fullPath = System.IO.Path.Combine(DownloadsPath, LookupSourceFileName());
var result = File(fullPath, "application/pdf");
result.FileDownloadName = targetFileName;
return result;
}
Quelqu'un peut-il voir ce que j'ai fait de mal?
Informations complémentaires ...
j'ai ajouté le code suivant à mon contrôleur pour afficher les en-têtes ...
protected override void OnResultExecuted(ResultExecutedContext filterContext)
{
base.OnResultExecuted(filterContext);
WriteResponseHeadersToFile(@"C:\temp\ResponseHeaders.txt", filterContext.HttpContext.Response);
}
private static void WriteResponseHeadersToFile(string fileName, System.Web.HttpResponseBase response)
{
using (StreamWriter writer = new StreamWriter(fileName, true))
{
writer.Write("Reponse started @ ");
writer.WriteLine(DateTime.Now.ToShortTimeString());
var allHeaders = response.Headers;
for (int i = 0; i < allHeaders.Count; i++)
writer.WriteLine("{0} = {1}", allHeaders.Keys[i], allHeaders[i]);
writer.Close();
}
}
Ce fut le résultat ...
Réponse démarrée @ 09:02
Serveur = Microsoft-IIS/7.0
X-AspNetMvc-Version = 1.0
Content-Disposition = pièce jointe; filename = "Termes et conditions complets.pdf"
Qu'est-ce que 'targetFileName'? Et pouvez-vous afficher les en-têtes de réponse HTTP générés par 'FullTermsAndConditions()'? – bzlm
targetFileName sera 'FullTermsAndConditions.pdf' et est le nom que les utilisateurs verront lors du téléchargement. Pouvez-vous me donner une méthode pour vérifier les en-têtes s'il vous plaît? –
La question principale a maintenant plus d'informations. –