从以文件流的形式下载文件

以下代码是把服务器的文件从IE连接上下载到本地,此种方式比直接连接指向服务器文件的方式更安全.

   string strDocPath =  GetFilePath(strPackID, strSuffix, "/ReleaseFile/"); //ReleaseFile指文件所在目录, 需要转换成服务器物理路径.
   if (File.Exists(strDocPath))
   { 
       string strContentType = GetContentType(strSuffix);
       if (strContentType != string.Empty)
        Response.ContentType = strContentType;
    

       Response.Expires = -1;
       Response.Buffer = true;

       Stream fs = File.Open(strDocPath, FileMode.Open, FileAccess.Read);
       BinaryReader Br = new BinaryReader(fs);
       byte[] buffer = new byte[fs.Length];
       Br.Read(buffer, 0, (int)fs.Length);
    //
       Response.AppendHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(strPackName,Encoding.UTF8));
       Response.AppendHeader("content-transfer-encoding", "gb2312");
       Response.AppendHeader("Content-Length", buffer.Length.ToString());
       Response.BinaryWrite(buffer);
       Response.Flush();
       fs.Close();
       Response.End();
}

posted @ 2006-09-07 08:51  我的理想之路  阅读(481)  评论(0编辑  收藏  举报