1. 程式人生 > 其它 >.net傳輸檔案流,下載

.net傳輸檔案流,下載

原來一直是給地址讓前端進行呼叫,但安全性不好,且無法記載下載和閱覽次數,因此使用檔案流供檢視(僅pdf),下載

檢視

var file = File.OpenRead(path);//讀取檔案,path為路徑
MemoryStream stream = new MemoryStream(); //建立流
file.CopyTo(stream);

var buf = stream.ToArray();
var fileName = $"{mes.fileName}.pdf";

HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ContentType 
= $"application/pdf"; HttpContext.Current.Response.AddHeader("Content-Disposition", $"inline; filename={fileName}"); HttpContext.Current.Response.BinaryWrite(buf); HttpContext.Current.Response.Flush(); HttpContext.Current.Response.Close();

下載

var file = File.OpenRead(path);
MemoryStream stream = new
MemoryStream(); //建立流 file.CopyTo(stream); var buf = stream.ToArray(); var fileName = $"{mes.fileName}{extension}"; //流方式下載檔案 HttpContext.Current.Response.ContentType = "application/octet-stream"; //通知瀏覽器下載檔案 HttpContext.Current.Response.AddHeader("Content-Disposition", $"attachment; filename={HttpUtility.UrlEncode(fileName)}
"); HttpContext.Current.Response.BinaryWrite(buf); HttpContext.Current.Response.Flush(); HttpContext.Current.Response.End();