gpt4 book ai didi

asp.net-mvc - 使用 asp.net mvc 下载文件

转载 作者:行者123 更新时间:2023-12-04 23:55:41 26 4
gpt4 key购买 nike

我尝试使用以下代码。但它没有用。

public FileResult download(string path)
{
return File(path, "application/pdf", Server.UrlEncode(path));
}

我的 Ajax 代码是:

function fileDownload(path) { 
$.ajax({
url: '/Home/download',
data: { path: path },
type: 'POST',
async: false,
success: function (data) { }
});
}

最佳答案

您通常希望将文件名映射到服务器上的物理路径,例如假设用户选择文件 Foo.pdf 并且所有内容文件都在 ~/Content 文件夹中:

public FileResult download(string path)
{
string actualPath = Server.MapPath("~/Content/" + path);
return File(actualPath, "application/pdf", Server.UrlEncode(path));
}

但是,从安全的角度来看,允许用户直接指定文件名是可疑的 - 您可能需要考虑其他替代方案,例如可用文件的表或字典,并强制浏览器选择其中一个通过 key 获取可用文件 - 这样恶意用户就无法对不打算提供的文件进行网络钓鱼。

编辑,看到OP要Ajax后

Ajax 文档应该可以工作,尽管以这种方式下载不会呈现 PDF - 您需要将文档传递给可编写脚本的 PDF 查看器或类似工具。

代替 ajax 文档,您可以生成一个简单的链接、按钮或图像,用户可以单击这些链接、按钮或图像来调用 Controller 操作并下载 PDF:

 @Html.ActionLink("Click to download", "download", new {path = "MyNicePDF.pdf"})

关于asp.net-mvc - 使用 asp.net mvc 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27477684/

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