C#Http服务器远程文件下载到浏览器
适用于.net4.0版本
/// <summary>
/// 下载文件
/// </summary>
/// <param name="url">文件名称(包含目录和后缀名)</param>
private void DownLoadPic(string url)
{
/*Http文件下载*/
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.AddHeader("Content-Transfer-Encoding", "binary");
Response.ContentType = "application/octet-stream";
Response.ContentEncoding = Encoding.Default;
var req = (HttpWebRequest)WebRequest.Create(url);
var fileName = url.Substring(url.LastIndexOf('/') + 1);
//告诉浏览器这是要下载你这里
Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName + "");
using (var res = req.GetResponse())
{
var fileLength = (int)res.ContentLength;
Response.AddHeader("Content-Length", fileLength.ToString());
using (var reqStream = res.GetResponseStream())
{
var byteArray = new byte[1024];
int count;
while (reqStream != null && (count = reqStream.Read(byteArray, 0, byteArray.Length)) > 0)
{
Response.OutputStream.Write(byteArray, 0, count);
Response.Flush();
}
}
}
if (req != null)
{
req.Abort(); // 终止请求
}
Response.End();
}