.net下载文件方法

1、以文件流下载
       byte[] fileStr=new  byte[5];

            MemoryStream btMs = new MemoryStream(fileStr);

            //以字符流的形式下载文件 

            byte[] bytes = new byte[(int)btMs.Length];
            btMs.Read(bytes, 0, bytes.Length);
            btMs.Close();
            Page.Response.ContentType = "application/octet-stream";
            //通知浏览器下载文件而不是打开 
            Page.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8));
            Page.Response.BinaryWrite(bytes);
            Page.Response.Flush();
            Page.Response.End();

2、根据文件路径下载

public void Download(string path)
        {

            string filePath = HttpContext.Current.Server.MapPath(path);//路径

            //以字符流的形式下载文件 
            FileStream fs = new FileStream(filePath, FileMode.Open);
            byte[] bytes = new byte[(int)fs.Length];
            fs.Read(bytes, 0, bytes.Length);
            fs.Close();
            HttpContext.Current.Response.ContentType = "application/octet-stream";

            HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode("test", System.Text.Encoding.UTF8));
            HttpContext.Current.Response.BinaryWrite(bytes);
            HttpContext.Current.Response.Flush();
            HttpContext.Current.Response.End();
        }

3.直接下载

 WebClient client = new WebClient();

//文件存放路径
var path = HttpContext.Current.Server.MapPath(@"\Static\BtDownload\");

//判断文件是否存在
var file = new FileInfo(path + filename);
if (!file.Exists)
{
 client.DownloadFile(value, path + filename);
}

 

posted @ 2014-11-02 15:38  renzaijianghu  阅读(365)  评论(0编辑  收藏  举报