所以我将pdf文件保存为数据库中的bytearray,当我需要它时,我将下载并将其转换为前端的base64字符串并正确格式化。
有时会出现这种情况,但有时情况并非如此,我无法弄清楚原因,或找到更好的解决方法。
我的观点:
@{
var base64 = Convert.ToBase64String(Model.PdfAsBinary);
var pdfSrc = String.Format("data:application/pdf;base64,{0}", base64);
}
<embed src="@pdfSrc" type="application/pdf" />
这是我的工厂以及如何将pdf存储在数据库中:
byte[] image = File.ReadAllBytes(currentFileLocation);
_formerRepository.InsertFormerFileAsBinary(requestId, image);
这是处理数据库保存的InsertFormerFileAsBinary方法:
public void InsertFormerFileAsBinary (int requestId, byte[] file)
{
using (var context = new ACSWEntities())
{
context.ACSW_UpdateFormerRequestPdfAsBinary(requestId, file);
}
}
结果看起来像一个结构完美的base64字符串(标签总共有89107(!)个字符:
<embed src="data:application/pdf;base64,SUkqAEQEAQCAACBQOCQWDQeEQmFQuGQ2HQ+IRGJROKRWLReMRmNRuOR2PR+QSGRSOSSWTSeUSmVSuWS2XS+YTGZTOaTWbTecTmdTu......BCURIXC8MnwgULgGfgDxOgZ/==" type="application/pdf" />