用asp.net 下载文件
2014-05-07 13:44
381 查看
用asp下载文件,如果确定文件名,不是txt,bin...之类的文件可以直接用<a>标签下载,标签的href属性是文件的路径;
但是这种方式在IE浏览器中会出现不下载而是直接打开的问题,这是我们所不希望的;
解决方案:
设置网站的mimeMap;
一是设置IIS的配置,但是我的电脑安装好IIS之后却不能打开网站,所以这一步没有细细研究,只是知道可以这样做而已,如果以后有需要,可以自行查找教程,知道有这样的方法就好;
二是在网页后台设置mimeMap,使用Response可以设置,以下是网上的一段代码:
Ps:
1、我是使用asp:Button点击事件触发后台一个函数然后调用这个下载函数的,开始使用了updatePanel包含asp:Button控件,这会导致异步执行后台事件,所以下载过程会需要其他页面,后来我是不使用updatePanel包含处理,虽然页面点击之后会刷新,但至少能下载了,呵呵。http://blog.csdn.net/scate/article/details/5341382 这里有解决方法,但这是另外创建了一个页面,不是我的需求。
2、动态添加下载链接:
for (var j = 1; j < filesInOneDir.length; j++) {
var trA = document.createElement("tr");
dirANDfile = dir + "/" + filesInOneDir[j];
var ss = "ss";
var textBox = document.getElementById("fileName");
trA.innerHTML = "<td><input type='checkBox' value=" + i + "\:" + filesInOneDir[j] + "><span>" + filesInOneDir[j] + "</span></t d ><td style='width:7%;right:5px'><a style='cursor:pointer' onclick='javascript:downloadFile(\"" + dirANDfile + "\")'>下载</a></td>";
tableId.appendChild(trA);
}
但是这种方式在IE浏览器中会出现不下载而是直接打开的问题,这是我们所不希望的;
解决方案:
设置网站的mimeMap;
一是设置IIS的配置,但是我的电脑安装好IIS之后却不能打开网站,所以这一步没有细细研究,只是知道可以这样做而已,如果以后有需要,可以自行查找教程,知道有这样的方法就好;
二是在网页后台设置mimeMap,使用Response可以设置,以下是网上的一段代码:
public void DownloadFile(string path, string name) { try { System.IO.FileInfo file = new System.IO.FileInfo(path); Response.Clear(); Response.Charset = "GB2312"; Response.ContentEncoding = System.Text.Encoding.UTF8; // 添加头信息,为"文件下载/另存为"对话框指定默认文件名 Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(name)); // 添加头信息,指定文件大小,让浏览器能够显示下载进度 Response.AddHeader("Content-Length", file.Length.ToString()); // 指定返回的是一个不能被客户端读取的流,必须被下载 Response.ContentType = "application/ms-excel"; // 把文件流发送到客户端 Response.WriteFile(file.FullName); // 停止页面的执行 Response.End(); HttpContext.Current.ApplicationInstance.CompleteRequest(); } catch (Exception ex) { Response.Write("<script>alert('系统出现以下错误://n" + ex.Message + "!//n请尽快与管理员联系.')</script>"); } }
Ps:
1、我是使用asp:Button点击事件触发后台一个函数然后调用这个下载函数的,开始使用了updatePanel包含asp:Button控件,这会导致异步执行后台事件,所以下载过程会需要其他页面,后来我是不使用updatePanel包含处理,虽然页面点击之后会刷新,但至少能下载了,呵呵。http://blog.csdn.net/scate/article/details/5341382 这里有解决方法,但这是另外创建了一个页面,不是我的需求。
2、动态添加下载链接:
for (var j = 1; j < filesInOneDir.length; j++) {
var trA = document.createElement("tr");
dirANDfile = dir + "/" + filesInOneDir[j];
var ss = "ss";
var textBox = document.getElementById("fileName");
trA.innerHTML = "<td><input type='checkBox' value=" + i + "\:" + filesInOneDir[j] + "><span>" + filesInOneDir[j] + "</span></t d ><td style='width:7%;right:5px'><a style='cursor:pointer' onclick='javascript:downloadFile(\"" + dirANDfile + "\")'>下载</a></td>";
tableId.appendChild(trA);
}
相关文章推荐
- .NET技术 ASP.NET中常用的文件上传下载方法(多文件上传)
- asp.net下载文件 - accphy的专栏 - CSDNBlog
- ASP.NET中文件上传下载方法集合
- ASP.NET MVC图片文件上传与下载
- Asp.net大文件下载
- 超级简单:在asp.net中限制下载文件的访问权限
- iOS开发之结合asp.net webservice实现文件上传下载
- ASP.NET 文件下载
- 用C#(ASP.NET)怎么实现文件下载功能
- ASP.NET 在下载文件时对其重命名的思路及实现方法
- ASP.NET - ASP.NET 2.0 文件下载(支持大文件、防盗链)
- asp.net文件下载
- ASP.NET 实现PDF文件下载
- asp.net C#实现下载文件的六种方法实例
- Asp.net(c#)常用文件操作类封装 移动 复制 删除 上传 下载等
- ASP.NET中上传下载文件
- asp.net实现数据流文件下载
- ASP.NET[IIS]服务器上无法下载.apk文件解决方案 编辑:吴立星
- 如何在 ASP.NET 中下载文件
- asp.net 下载文件时根据MIME类型自动判断保存文件的扩展名