gpt4 book ai didi

asp.net - 我怎样才能让 asp.net mvc Action 一致地向浏览器传送文件?

转载 作者:行者123 更新时间:2023-12-01 23:34:48 25 4
gpt4 key购买 nike

我正在构建一个小 Action 来获取加密的 PDF 文件路径,对其进行解密,并将生成的 PDF 传送到浏览器。

我的代码在 Chrome 和 Firefox 中 100% 有效,但在 IE9 中只有 50% 有效。

当我在 IE9 中点击链接时,它似乎在浏览器窗口中打开了 Adob​​e Reader 插件,但在我点击刷新之前没有文件显示。

这是我的代码:

    [CheckSubscriber]
public ActionResult file(string path)
{
string mappedPath = Server.MapPath(
EncryptDecrypt.Decrypt(path,
EncString));

return base.File(mappedPath, "application/pdf");

}

我如何让它在 IE9 中始终如一地工作?

我只是在这里大声思考,但也许我使用了错误的 mime 类型?

最佳答案

你应该明确设置

Content-Disposition: inline; filename="foo.pdf"

content-disposition 是从服务器返回响应时的​​关键响应 header 。如果与 MIME 类型一起指定,所有浏览器都会 100% 正确地检测到该文件。

您可以使用 Fiddler 来确保响应头是有序的。

编辑

您不能为您的操作使用“ActionResult”返回类型来执行此操作。

您需要使用“FilePathResult”或“FileStreamResult”,它们都可以在 System.Web.MVC 命名空间中找到。

或者您可以创建一个 Custom Action Return Type并将其用于此操作。我提供的文章逐步给出了有关如何执行此操作的代码。

关于asp.net - 我怎样才能让 asp.net mvc Action 一致地向浏览器传送文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7069426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com