[英]Returning PDF as FileContentResult from byte array produces invalid file
I need a link for downloading or viewing a pdf in the browser.我需要一个用于在浏览器中下载或查看 pdf 的链接。 I tried almost every solution but after downloading the pdf file, the file seems broken.
我几乎尝试了所有解决方案,但在下载 pdf 文件后,该文件似乎已损坏。
My Controller:我的 Controller:
public ActionResult DownloadKalite(Guid oid)
{
string contentType = "application/pdf";
List<KaliteDokumanlari> kalite = db.KaliteDokumanlari.Where(a => a.Oid == oid && a.GCRecord == null).ToList();
string filename = kalite.Select(y => y.FileData.FileName).FirstOrDefault();
byte[] filearray = kalite.Select(y => y.FileData.Content).FirstOrDefault();
return File(filearray, contentType, filename);
}
My download link in view:我的下载链接在视图中:
<div id="panel3d">
@foreach (var doc in item.KaliteDokumanlari)
{
<div>
@Html.ActionLink(doc.FileData.FileName, "DownloadKalite", new { @oid = doc.Oid })
</div>
}
</div>
After download pdf seems ok PDF Error下载后 pdf 似乎没问题 PDF 错误
Try getting the byte into a MemoryStream尝试将字节放入 MemoryStream
var pdfStream= new MemoryStream();
pdfStream.Write(filearray , 0, filearray .Length);
pdfStream.Position = 0;
return File(pdfStream, contentType, filename);
If this does not work store the pdf as base64 string to avoid byte loss.如果这不起作用,请将 pdf 存储为 base64 字符串以避免字节丢失。
Thank you for your help.谢谢您的帮助。 I understand my problem.
我明白我的问题。 I created database with xaf.
我用 xaf 创建了数据库。 And xaf stored bytes as composed.
并且 xaf 将字节存储为组合。 Now it is working, I decompose bytes
现在它正在工作,我分解字节
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.