c# - 从 byte[] 下载 PDF 文件
问题描述
我一直在努力从ASP.Net MVC C# 中PDF
下载文件。bytes[]
下面的代码工作正常。
我需要将代码转换.NET Core
为相同的PDF
下载过程。
string fileName = "testFile.pdf";
byte[] pdfasBytes = Encoding.ASCII.GetBytes(fileBytes); // Here the fileBytes are already encoded (Encrypt) value. Just convert from string to byte
Response.Clear();
MemoryStream ms = new MemoryStream(pdfasBytes);
Response.ContentType = "application/pdf";
Response.Headers.Add("content-disposition", "attachment;filename=" + fileName);
Response.Buffer = true;
ms.WriteTo(Response.OutputStream);
Response.Flush();
Response.End();
我试图将上面的代码转换为.NET Core
. 我收到一个错误:OutputStream方法不包含此 ms.WriteTo(Response.OutputStream)行的响应。提前致谢。!
解决方案
@Luaan 先生已经给出了答案,但可能我的代码也对你有帮助,所以我分享一下。
从文件夹下载PDF文件
[HttpGet]
public FileStreamResult DownloadPdfFile(string fileName)
{
var stream = new FileStream(Directory.GetCurrentDirectory() + "\\wwwroot\\WriteReadData\\" + fileName, FileMode.Open);
return new FileStreamResult(stream, "application/pdf");
}
从数据库下载pdf文件
[HttpGet]
public FileStreamResult DownloadFileFromDataBase(string id)
{
var _fileUpload = _db.FileUpload.SingleOrDefault(aa => aa.fileid == id); // _fileUpload.FileContent type is byte
MemoryStream ms = new MemoryStream(_fileUpload.FileContent);
return new FileStreamResult(ms, "application/pdf");
}
For more info please also see this question and answer. Return PDF to the Browser using Asp.net core
推荐阅读
- regex - 使用正则表达式提取器提取值?
- javascript - 循环遍历整个数组,同时排除一个项目
- python - 如何在整个递归函数中保留一个值(kdtree 问题)
- swift - 输入字符时搜索栏崩溃的应用程序
- c++ - 在给定向量的情况下找到素数的算法的时间复杂度
- python - 如何使用一个数据帧中的值来计算第二个数据帧中大于或小于它的值的总数?
- php - 使用 php foreach 循环创建带有 php 变量的 DOM ID
- c# - 我可以制作类属性方法参数c#
- c# - 计时器触发的 Azure 函数未按计划时间触发,并因 Azure 存储超时异常而失败
- django - 如何在 ModelViewSet 中获取 super().create() 创建的模型?