/*服务器本机文件下载*/
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();