.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();