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
}
});
如何做到這一點?