/*服务器本机文件下载*/
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.AddHeader("Content-Transfer-Encoding", "binary");
Response.ContentType = "application/octet-stream";
Response.ContentEncoding = Encoding.Default;var fileInfo = new FileInfo(Server.MapPath(url));
Response.AddHeader("Content-Disposition", "attachment;filename=" + fileInfo.Name + "");
Response.AddHeader("Content-Length", fileInfo.Length.ToString());
Response.WriteFile(fileInfo.FullName);
Response.Flush();Response.End();
/*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();}}
}
req?.Abort();Response.End();