本文介绍了"文件无法下载"在Internet Explorer中的ASP.NET MVC的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我返回 FileContentResult 从这样一个动作:

So I'm returning a FileContentResult from an action like this:

return File(pck.GetAsByteArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "MyExcelFile.xlsx");

当点击IE浏览器中的打开(我使用IE9,版本9.0.8112.16421),它说:文件无法下载,用户是一个重试按钮psented $ P $。如果他们点击重试,它工作正常。如果他们点击保存,它工作正常。在Firefox中,它工作正常。

When clicking "Open" in IE (I'm using IE9, version 9.0.8112.16421), it says "File couldn't be downloaded" and the user is presented with a 'Retry' button. If they click Retry, it works fine. If they click Save, it works fine. In Firefox, it works fine.

我怎样才能让用户打开该文件时,点击打开第一次?

How can I allow the user to open the file when the click Open the first time?

推荐答案

我有同样的问题,无法提供很好的解决方案(除了什么Tood建议,其中的选项)。但是寻找与小提琴手和放大器的情况; CO。,我有一些可能会有所帮助的更多信息。

I have the same problem and cannot offer a good solution (besides what Tood suggests, which is an option). But looking at the situation with fiddler & co., I have some more information that may be of help.

我们的应用程序动态创建PDF文档,并提供它们作为下载。这个问题显然是依赖于数据的,这意味着有些生成的文件下载罚款第一次尝试,而其他重复性需要重试。

Our application is creating PDF documents on the fly and offering them as downloads. The issue is clearly data-dependent, meaning that some generated files download fine on the first attempt while others reproducibly need the retry.

提琴手显示服务器的响应是相同的每次访问,据我可以告诉。然而,要求不同,(样品稍微改动过):

Fiddler shows the server responses to be identical on each access, as far as I can tell. The requests differ, however (samples slightly edited):

第一个请求:

GET http://localhost:12345/Item/PDF/id HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Referer: ...
Accept-Language: ...
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Host: localhost:12345
Connection: Keep-Alive
Cookie: ASP.NET_SessionId=52znkt1fcisrolj44tnuyzu4

第二个请求:

GET http://localhost:12345/Item/PDF/id HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Host: localhost:12345
Connection: Keep-Alive
Cookie: ASP.NET_SessionId=52znkt1fcisrolj44tnuyzu4

请注意,第二个请求如何降低接受:头刚 * / * 。我是不愿意的理由文件扩展名添加到URL的是,建议下载名称从项目数据生成,提交与响应否则完全无关的ID。

Note, how the second request reduces the 'Accept:' header to just */*. The reason that I'm reluctant to add a file extension to the Url is that the suggested download name is generated from item data, submitted with the response and otherwise totally unrelated to the ID.

这篇关于"文件无法下载"在Internet Explorer中的ASP.NET MVC的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-16 02:15