0
我有非常类似的问题,因为这:Allowing users to download files - ASP.NET,但对我来说,我产生与阿贾克斯XLSX文件和Ajax所谓的aspx页面上我使用:使用ajax生成文件并允许用户下载它?
Response.Clear();
Response.ContentType = "application/octet-stream";
string filename = User.Identity.Name + "_Report.xlsx";
Response.AddHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");
Response.WriteFile(AppDomain.CurrentDomain.BaseDirectory + "Reports\\" + filename);
Response.End();
当产生这个文件,则控制返回到Ajax调用页面,从那里我不会显示基于这个Ajax响应的保存文件对话框,并允许用户下载这个生成的文件。由于IE中的弹出式窗口拦截器,我不想用称为页面的ajax将文件保存在磁盘上,然后将ajax调用页面重定向到该文件。我正在使用jQuery的阿贾克斯调用:
$.ajax({
type:"POST",
url: "AjaxReport.aspx",
data:dataString,
success: function(data) {
//don't want to use this
// $('#RedirectIFrame').attr('src','Reports/Report.xlsx?cache='+Math.random());
//want to use data variable containing ajax response (bytes of Report file) showing
//save dialog to download this file from browser
}
});
如何做到这一点?