Arb*_*æde 15 javascript asp.net wcf
我有一个有趣的任务,需要我从服务器(ASP.NET)下载动态生成的文件到客户端.在客户端,它只是JavaScript(jQuery),客户端能够生成大量参数来自定义数据的导出方式.
从服务器下载文件的最佳方法是什么?我应该使用WCF服务,例如此处描述的内容还是像这样的简单页面?
我不知道如何在不重新加载页面的情况下下载文件(我不确定$ .ajax在这种情况下是否有效).有人可以就这个话题给我一些指示吗?谢谢.
Ari*_*tos 20
首先,您可以从处理程序创建文件 .ashx
假设您有要下载的文件,download.ashx并且您有一些参数可以从您的javascript传递,例如download.ashx?p1=8827&p2=8831知道您要创建的内容.
然后在您的JavaScript上,您可以简单地进行重定向
window.location = "download.ashx?p1=8827&p2=8831";
Run Code Online (Sandbox Code Playgroud)
或替代你可以使用window.open为做同样的想法
window.open("download.ashx?p1=8827&p2=8831");
Run Code Online (Sandbox Code Playgroud)
并且您的文件将开始下载.
只需确保您已设置附件标题,并在您的句柄上设置正确的内容类型,例如:
HttpContext.Current.Response.ContentType = "application/octet-stream";
HttpContext.Current.Response.AddHeader("Content-Disposition",
"attachment; filename=" + SaveAsThisFileName);
Run Code Online (Sandbox Code Playgroud)
简单明了,经过测试和工作.
您也可以对此答案感兴趣:如何处理错误.