用asp.net 下载文件

来源:互联网 发布:手机股市行情软件下载 编辑:程序博客网 时间:2024/06/06 08:51

用asp下载文件,如果确定文件名,不是txt,bin...之类的文件可以直接用<a>标签下载,标签的href属性是文件的路径;

但是这种方式在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></td ><td style='width:7%;right:5px'><a style='cursor:pointer' onclick='javascript:downloadFile(\"" + dirANDfile + "\")'>下载</a></td>";                            tableId.appendChild(trA);                        }


0 0
原创粉丝点击