.net傳輸檔案流,下載
阿新 • • 發佈:2021-12-21
原來一直是給地址讓前端進行呼叫,但安全性不好,且無法記載下載和閱覽次數,因此使用檔案流供檢視(僅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 = newMemoryStream(); //建立流 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();