Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在嵌入标记中显示从数据库下载的pdf文件_Javascript_Html_Asp.net Mvc_Asp.net Core_Embed - Fatal编程技术网

Javascript 在嵌入标记中显示从数据库下载的pdf文件

Javascript 在嵌入标记中显示从数据库下载的pdf文件,javascript,html,asp.net-mvc,asp.net-core,embed,Javascript,Html,Asp.net Mvc,Asp.net Core,Embed,我们正在尝试从数据库中获取字节数组格式的pdf文件。当用户点击显示按钮时,它应该显示在屏幕顶部的嵌入标签中。但当我们将字节数组转换为base64string时,它不会出现在嵌入文件中 <td> @Html.DisplayFor(modelItem => item.File) <a href="#" onclick="OpenPDF();">Display</a> </td> @DisplayFor(

我们正在尝试从数据库中获取字节数组格式的pdf文件。当用户点击显示按钮时,它应该显示在屏幕顶部的嵌入标签中。但当我们将字节数组转换为base64string时,它不会出现在嵌入文件中

<td>
@Html.DisplayFor(modelItem => item.File)
<a href="#" onclick="OpenPDF();">Display</a>
</td>

@DisplayFor(modeleItem=>item.File)
当用户按下显示按钮时,OpenPDF脚本将打开:

            <script type="text/javascript">
            function OpenPDF() {

                document.getElementById("pdfBack").style.visibility = "visible";
                document.getElementById("pdfDialog").style.visibility = "visible";
                document.getElementById("pdfFile").setAttribute("src", "data:application/pdf;base64," + @Convert.ToBase64String(item.File));
            }
        </script>

函数OpenPDF(){
document.getElementById(“pdfBack”).style.visibility=“可见”;
document.getElementById(“pdfDialog”).style.visibility=“visible”;
document.getElementById(“pdfFile”).setAttribute(“src”,“数据:application/pdf;base64,”+@Convert.ToBase64String(item.File));
}
这是嵌入标记:

<embed id="pdfFile" type="application/pdf" src="" width="100%" height="100%" />

它不起作用!按下按钮后,嵌入标签将打开,但mebed内没有pdf文件

请帮助我们如何处理此问题

要直接在浏览器上正确显示PDF,您需要使用某种PDF查看器,例如google docs,或者您可以使用类似PDF.js的库

  • 使用谷歌文档->
  • 
    
    为了让它工作,你需要把你的PDF文件放在网上的某个地方

  • 您也可以使用PDF.js 检查示例以使其适用于您
  • 为了使嵌入解决方案能够工作,您需要在已经存在的地方托管文件,并在src中提供该路径

    <script type="text/javascript">
                function OpenPDF() {
    
                    document.getElementById("pdfBack").style.visibility = "visible";
                    document.getElementById("pdfDialog").style.visibility = "visible";
                    document.getElementById("pdfFile").setAttribute("src", "http://yourwebsite.com/" + fileName );
                }
            </script>
    
    <embed src="" width="500" height="375" 
     type="application/pdf">
    
    
    函数OpenPDF(){
    document.getElementById(“pdfBack”).style.visibility=“可见”;
    document.getElementById(“pdfDialog”).style.visibility=“visible”;
    document.getElementById(“Pdfile”).setAttribute(“src”,”http://yourwebsite.com/“+文件名);
    }
    
    如果托管文件有问题,我建议使用PDF.js

    另外,android上的chrome不支持嵌入PDF文件,因此如果您希望android用户使用PDF.js或google文档

    <script type="text/javascript">
                function OpenPDF() {
    
                    document.getElementById("pdfBack").style.visibility = "visible";
                    document.getElementById("pdfDialog").style.visibility = "visible";
                    document.getElementById("pdfFile").setAttribute("src", "http://yourwebsite.com/" + fileName );
                }
            </script>
    
    <embed src="" width="500" height="375" 
     type="application/pdf">