当我将大于1MB的PDF加载到chrome pdf查看器中时出现问题。但是加载小于1MB的PDF没问题。
不仅在chrome中,而且mozilla firefox也无法加载。
这是我的代码:
`<?php
include "/MODEL/db.php";
$sql = "SELECT SIUP from $DBVCE.VENDORREQUEST where ID='11079'";
$query = mssql_query($sql,$con);
while($query_db = mssql_fetch_assoc($query)){
$FILE = $query_db['SIUP'];
}
echo '<object height="100%" width="100%"
data="data:application/pdf;base64,'.base64_encode($FILE).'">';
?>`
我在查询中选择的SIUP是varbinary(MAX)。它包含这样的值(0xFFD8FFE12 ...)
答案 0 :(得分:1)
我发现了问题。这是因为我的php变量只能包含1,048,576个字节的长度。但是我的PDF文件(以varbinary格式)大约为1,280,345字节。所以我像下面那样更改php.ini文件
只需将mssql.textlimit = 1048576
更改为mssql.textlimit = n
并将php.ini文件中的mssql.textsize = 1048576
到mssql.textsize = n
其中n
是您想要的文本长度
答案 1 :(得分:0)
您试图将整个文档表示为以base64编码的URL,导致URL长度为几兆字节。浏览器支持的长度几乎肯定有限制,这给您带来了麻烦。
您无需渲染包含该URL的HTML页面,而是直接将文档内容回显到浏览器,并使用HTTP标头告知浏览器内容类型:
dict2items