PDF文件从byte[]下载
PDF file download from byte[]
我一直致力于在 ASP.Net MVC C# 中从 bytes[]
下载 PDF
文件。下面的代码工作正常。
对于相同的 PDF
下载过程,我需要将代码转换为 .NET Core
。
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) 行的响应。
提前致谢!
MVC 对此进行了简化。您只需要执行一个 returns ActionResult
:
的操作
public ActionResult GetImage()
{
string fileName = "testFile.pdf";
var pdfasBytes = ...;
return File(pdfasBytes, "application/pdf", fileName);
}
@Luaan sir 已经回答了,不过可能我的代码也对你有帮助,所以分享一下。
从文件夹下载 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");
}
有关详细信息,另请参阅此问答。
我一直致力于在 ASP.Net MVC C# 中从 bytes[]
下载 PDF
文件。下面的代码工作正常。
对于相同的 PDF
下载过程,我需要将代码转换为 .NET Core
。
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) 行的响应。
提前致谢!
MVC 对此进行了简化。您只需要执行一个 returns ActionResult
:
public ActionResult GetImage()
{
string fileName = "testFile.pdf";
var pdfasBytes = ...;
return File(pdfasBytes, "application/pdf", fileName);
}
@Luaan sir 已经回答了,不过可能我的代码也对你有帮助,所以分享一下。
从文件夹下载 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");
}
有关详细信息,另请参阅此问答。