通过点击Ext.Ajax.request下载文件
本文关键字:request 下载 文件 Ajax Ext | 更新日期: 2023-09-27 18:13:50
我试图通过点击一个带有onClick事件的href链接来下载文件:
<a href="#download" onClick="downloadFile('@(elem.Attachment)')">@(elem.Attachment.Split('/').Last())</a>
在初步的。附件中有我要下载的文件的完整路径。
在控制器中下载文件的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方法,传递了正确的路径。
我怎么能下载现在返回的FileResult从控制器使用Ajax请求?
您不需要是简单的答案,假设内容是静态的。用户必须被引导到一个url,浏览器才能做一些事情,否则它只是保存在内存中。
在success函数中你可以这样做:
window.location.assign(path);
window.location.assign
不能通过ajax下载文件。您可以在新窗口或blob对象中下载文件,我认为使用iframe也是可能的,但使用ajax是不可能的。
谢谢你的回答。我现在通过使用ext.net组件"linkButton"修复了它,我可以给一个DirectEvent来调用控制器的方法。工作很好。的问候。