Asp.net网站中 js通过iframe下载文件
2016-02-22 16:12
756 查看
1. 前台代码
<iframe id="exportIFrame" style="display: none;"></iframe> //ajax代码 <script type="text/javascript"> $.ajax({ url: "test.ashx?method=downFile&ID=" + ID + "", type: "Post", data: {}, error: function (jqXHR, textStatus, errorThrown) { mini.alert(jqXHR.responseText, "信息提示"); }, success: function (data) { if (data == "no") { alert("文件在目录中不存在!"); } else { var url = "test.ashx?method=downFile&ID=" + ID + ""; var exportIFrame = document.getElementById("exportIFrame"); exportIFrame.src = url; } } }); </script>
2.后台代码
private object downFile(HttpContext context) { try { string ID = context.Request["ID"]; testBLL bll = new testBLL(); //获取文件信息 DataTable dt = bll.downFile(ID); if (dt == null) { return "no"; } else { string path = HttpContext.Current.Server.MapPath("../Reports/file/") + dt.Rows[0]["FJNAME"].ToString(); if (File.Exists(path)) { System.IO.FileInfo file = new System.IO.FileInfo(path); context.Response.Clear(); context.Response.ClearHeaders(); context.Response.Buffer = false; context.Response.ContentType = "application/octet-stream"; //新的名字+扩展名,HttpUtility.UrlEncode保证下载文件名非乱码 context.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(dt.Rows[0]["title"].ToString() + "." + dt.Rows[0]["kuozhanming"].ToString(), System.Text.Encoding.UTF8)); context.Response.AppendHeader("Content-Length", file.Length.ToString()); context.Response.WriteFile(file.FullName); context.Response.Flush(); context.Response.End(); return ""; } else { return "no"; } } } catch (Exception) { return "no"; } }
菜鸟总结 多存疏漏 感谢指正
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- 分享微信开发Html5轻游戏中的几个坑
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享
- 如何创建对象以及jQuery中创建对象的方式