Asp.net 下载文件(弹出对话框的形式)

时间:2021-03-08 07:04:53

下载文件的核心代码:

        private void DownLoadDataFile()
        {
            try
            {
                string filePath = @"C:\lala.csv";   //the target file path
                FileInfo downloadFile = new FileInfo(filePath);
                if (downloadFile.Exists)
                {
                    Response.Clear();
                    Response.ClearHeaders();
                    Response.Buffer = false;
                    Response.ContentType = "application/octet-stream";
                    Response.AppendHeader("Content-Disposition", "attachement;filename=" + HttpUtility.UrlEncode(downloadFile.FullName, System.Text.Encoding.ASCII));
                    Response.AppendHeader("Content-Length", downloadFile.Length.ToString());
                    Response.WriteFile(downloadFile.FullName);
                    Response.Flush();
                    Response.End();
                }
                else
                { }
            }
            catch (Exception ex)
            { }
        }

也可以简单的参考这些文章:

http://www.cnblogs.com/futao/archive/2009/12/29/1635236.html

http://www.cnblogs.com/weixing/archive/2012/02/27/2369567.html

 

然而对于SharePoint 中的WebPart 中的上下文环境中没有 Response 这个对象,但是可以用 HttpContext.Current.Response 对象进行代替 详情请看 http://social.technet.microsoft.com/Forums/zh-CN/mosses/thread/3d5f36bb-5c89-49c6-a15d-e30225d50d5e

实例代码如下所示:

        private void DownLoadDataFile()
        {
            try
            {
                string filePath = @"C:\lala.csv";   //the target file path
                FileInfo downloadFile = new FileInfo(filePath);
                if (downloadFile.Exists)
                {
                    HttpContext.Current.Response.Clear();
                    HttpContext.Current.Response.ClearHeaders();
                    HttpContext.Current.Response.Buffer = false;
                    HttpContext.Current.Response.ContentType = "application/octet-stream";
                    HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachement;filename=" + HttpUtility.UrlEncode(downloadFile.FullName, System.Text.Encoding.ASCII));
                    HttpContext.Current.Response.AppendHeader("Content-Length", downloadFile.Length.ToString());
                    HttpContext.Current.Response.WriteFile(downloadFile.FullName);
                    HttpContext.Current.Response.Flush();
                    HttpContext.Current.Response.End();
                }
                else
                { }
            }
            catch (Exception ex)
            { }
        }

 

 。。。。。。