asp.net 文件下载

方法1:

FileInfo DownloadFile = new FileInfo(FileName);
        System.Web.HttpContext.Current.Response.Clear();
        System.Web.HttpContext.Current.Response.ClearHeaders();
        System.Web.HttpContext.Current.Response.Buffer = false;

        System.Web.HttpContext.Current.Response.Charset = "GB2312";
        System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
        System.Web.HttpContext.Current.Response.ContentType = "application/vnd.ms-word";
        System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(DownloadFile.Name));
        System.Web.HttpContext.Current.Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
        System.Web.HttpContext.Current.Response.WriteFile(DownloadFile.FullName);
        System.Web.HttpContext.Current.Response.Close();
        System.Web.HttpContext.Current.Response.Flush();
        System.Web.HttpContext.Current.Response.End();

 

方法2:

FileInfo DownloadFile = new FileInfo(FileName);
        FileStream stream = new FileStream(FileName, FileMode.Open,
        FileAccess.Read, FileShare.Read);
        try
        {

            Response.Charset = "GB2312";
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            Response.ContentType = "application/octet-stream";
            Response.AppendHeader("Content-Disposition",  "attachment;filename=" + System.Web.HttpUtility.UrlEncode(DownloadFile.Name));
            int bufSize = (int)stream.Length;
            byte[] buf = new byte[bufSize];
            int bytesRead = stream.Read(buf, 0, bufSize);
            Response.OutputStream.Write(buf, 0, bytesRead);
            Response.End();
        }
        finally
        {
            stream.Close();
        }

posted on 2011-08-12 14:16  carekee  阅读(312)  评论(0编辑  收藏  举报