当文件很小时,这非常有效。一旦文件变大(>1 MB(。无法再显示PDF。
<embed src="@PDFContent" style="width: 100%;height: 930px;border: none;" frameborder="0" />
PDFContent = "data:application/pdf;base64," + Convert.ToBase64String(File.ReadAllBytes(@"Server:Temptest.pdf"));
该文件位于服务器上,而不是IISS上。可能有什么问题
请尝试使用<iframe>
而不是<embed>
。此外,将base64数据转换回二进制,打包在Blob中,然后将iframe的src设置为指向该Blob的Blob URI-
const blob = base64ToBlob( base64, 'application/pdf' );
const url = URL.createObjectURL( blob );
const pdfWindow = window.open("");
pdfWindow.document.write("<iframe width='100%' height='100%' src='" + url + "'></iframe>");
function base64ToBlob( base64, type = "application/octet-stream" ) {
const binStr = atob( base64 );
const len = binStr.length;
const arr = new Uint8Array(len);
for (let i = 0; i < len; i++) {
arr[ i ] = binStr.charCodeAt( i );
}
return new Blob( [ arr ], { type: type } );
}
如果这种方法不起作用,请尝试使<iframe>
直接指向PDF的URL。
希望这个解决方案对你有用。