我正在尝试通过单击带有onClick事件的href链接来下载文件:
<a href="#download" onClick="downloadFile('@(elem.Attachment)')">@(elem.Attachment.Split('/').Last())</a>
在elem.Attachment中,有我试图下载的文件的完整路径。
在Controller中下载文件的我的C#方法如下:
public FileResult DownloadFile(string path)
{
return File(path, System.Net.Mime.MediaTypeNames.Application.Octet, Path.GetFileName(path));
}
我使用的最后一个方法是javascript函数“downloadFile”:
function downloadFile(path){
Ext.Ajax.request({
url: '/Home/DownloadFile',
type: "post",
params: { path: path },
success: function (response, opts) {
},
failure: function (response, opts) {
alert('server-side failure with status code ' + response.status);
}
});
}
我调试了程序,它调用了我的控制器的“DownloadFile”方法,传递了正确的路径。
如何使用Ajax请求从Controller下载返回的FileResult?
答案 0 :(得分:0)
假设静态内容,您不是简单的答案。用户必须被引导到浏览器的URL以执行某些操作,否则它只是保存在内存中。
在成功功能中,你可以这样做:
window.location.assign(path);
答案 1 :(得分:0)
您无法通过ajax下载文件。你可以在新窗口或blob对象中下载文件,我认为也可以使用iframe,但是使用ajax是不可能的。
答案 2 :(得分:0)
感谢您的回答。 我现在通过使用ext.net组件&#34; linkButton&#34;来修复它,我可以让DirectEvent调用控制器的方法。 工作良好。问候。