通过点击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请求?

通过点击Ext.Ajax.request下载文件

您不需要是简单的答案,假设内容是静态的。用户必须被引导到一个url,浏览器才能做一些事情,否则它只是保存在内存中。

在success函数中你可以这样做:

 window.location.assign(path);

window.location.assign

不能通过ajax下载文件。您可以在新窗口或blob对象中下载文件,我认为使用iframe也是可能的,但使用ajax是不可能的。

谢谢你的回答。我现在通过使用ext.net组件"linkButton"修复了它,我可以给一个DirectEvent来调用控制器的方法。工作很好。的问候。