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

 

posted @ 2021-12-21 14:29  混子一  阅读(547)  评论(0)    收藏  举报