关闭

JQuery按照form下载文件+后台asp.net,非ajax(下)

427人阅读 评论(0) 收藏 举报
分类:

    前面说到通过js form方式POST数据,那后台应该怎么处理了。

因为这代码的框架是一个外包写的,写的很复杂,可能也是之前所有的系统的合集。

暂时也没有时间去整理,所以只是在原有方式上增加功能。

作为一个C++的工程师,现在去搞前端。。。。

 

   后台有两种办法处理,一般的方式是先生成本地文件,然后在发送,还有就是直接发送数据。

我目前采用的是先生成本地文件。

看看代码吧

var filename = "withdraw_"+DateTime.Today.ToString("yyyyMMddhhmmss") + ".csv";
            var path = "~/ApiViews/PXMServer/" + filename;
            var filePathName = System.Web.HttpContext.Current.Server.MapPath(path);
            ExportWithdraw(context, filePathName);
            FileInfo fileInfo = new FileInfo(filePathName);
            HttpContext.Current.Response.Clear();
            HttpContext.Current.Response.ClearContent();
            HttpContext.Current.Response.ClearHeaders();
            HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + filename);
            HttpContext.Current.Response.AddHeader("Content-Length", fileInfo.Length.ToString());
            HttpContext.Current.Response.AddHeader("Content-Transfer-Encoding", "binary");
            HttpContext.Current.Response.ContentType = "application/octet-stream";
            HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
            HttpContext.Current.Response.WriteFile(fileInfo.FullName);
            HttpContext.Current.Response.Flush();
            HttpContext.Current.Response.End();


其他的函数可以忽略,最重要的是response的处理。

这样就完成了前后端的交互。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:25082次
    • 积分:855
    • 等级:
    • 排名:千里之外
    • 原创:62篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    最新评论