J'ai problème très similaire à ceci: Allowing users to download files - ASP.NET, mais dans mon cas, je suis génèrent xlsx avec ajax, et à la page ASPX ajax-disant que je me sers:Générer un fichier avec ajax et permettre à l'utilisateur de le télécharger?
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();
Lorsque ce fichier est généré, le contrôle est retourné à la page d'appel ajax et à partir de là, je ne veux pas montrer le dialogue de fichier de sauvegarde basé sur cette réponse ajax et permettre à l'utilisateur de télécharger ce fichier généré. Je ne veux pas enregistrer le fichier sur le disque avec ajax appelé page, puis rediriger la page d'appel ajax à ce fichier, à cause du bloqueur de popup dans IE. J'utilise jquery pour les appels ajax:
$.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
}
});
Comment faire?