PHP无法加载大于1MB的PDF

时间:2019-01-24 02:21:58

标签: php pdf

当我将大于1MB的PDF加载到chrome pdf查看器中时出现问题。但是加载小于1MB的PDF没问题。

Here the picture when I load 800kb pdf

Here the picture when I load 1,8mb 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 ...)

2 个答案:

答案 0 :(得分:1)

我发现了问题。这是因为我的php变量只能包含1,048,576个字节的长度。但是我的PDF文件(以varbinary格式)大约为1,280,345字节。所以我像下面那样更改php.ini文件

BeforeAfter

只需将mssql.textlimit = 1048576更改为mssql.textlimit = n
并将php.ini文件中的mssql.textsize = 1048576mssql.textsize = n
其中n是您想要的文本长度

答案 1 :(得分:0)

您试图将整个文档表示为以base64编码的URL,导致URL长度为几兆字节。浏览器支持的长度几乎肯定有限制,这给您带来了麻烦。

您无需渲染包含该URL的HTML页面,而是直接将文档内容回显到浏览器,并使用HTTP标头告知浏览器内容类型:

dict2items