public static void ToDownload(string serverfilpath, string filename)
{
//serverfilpath --- 服务器上的文件路径
//filename ---文件名称
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serverfilpath);
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); //获得响应流
Stream ns = response.GetResponseStream();
MemoryStream fs = new MemoryStream();
byte[] nbytes = new byte[512];
int nReadSize = 0;
nReadSize = ns.Read(nbytes, 0, 512);
while (nReadSize > 0)
{
fs.Write(nbytes, 0, nReadSize);
nReadSize = ns.Read(nbytes, 0, 512);
}
fs.Position = 0;
long fileSize = fs.Length;
HttpContext.Current.Response.ContentType = "application/octet-stream";
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=/"" + filename + "/";");
HttpContext.Current.Response.AddHeader("Content-Length", fileSize.ToString());
byte[] fileBuffer = new byte[fileSize]; fs.Read(fileBuffer, 0, (int)fileSize);
HttpContext.Current.Response.BinaryWrite(fileBuffer);
fs.Close();
ns.Close();
HttpContext.Current.Response.End();
}