gpt4 book ai didi

php - BLOB 下载截断为 1 MB 脚本适用于小于 1 MB 的文件

转载 作者:行者123 更新时间:2023-11-29 01:48:02 28 4
gpt4 key购买 nike

我最近提出并解决了一个关于将大于 2 MB 的 .PDF 文件作为 BLOBS 上传到 MySQL 数据库的问题。我不得不更改我的 php.ini 文件中的一些设置和 MySQL 的最大数据包设置。然而,解决这个问题让我发现了我的脚本的一个新问题。

现在,因为我可以将文件上传到我的 BLOB 数据库,所以我尝试下载该文件以进行测试。令我沮丧的是,当我打开 .PDF 文件时,我收到了以下错误:加载文档失败(错误 3)'file:///tmp/test-13.pdf'。经过进一步调查,我发现正在下载的文件 test.pdf 只有 1 MB,比数据库中 2 MB 多一点的假定大小的一半还少一点。这显然是错误的原因。

以下代码是我用于从数据库下载文件的脚本的一部分。它位于脚本的最顶部, 可以完美地处理小于 1 MB 的文件。

 foreach($_REQUEST as $key => $value)
{
if ($value == 'Open')
{
header();
session_start();
$dbh = new PDO('mysql:host='.$_SESSION['OpsDBServer'].'.ops.tns.its.psu.edu;
dbname='.$_SESSION['OpsDB'], $_SESSION['yoM'], $_SESSION['aMa']);
$id = $key;
$sqlDownload = "SELECT name, type, content, size FROM upload WHERE
id='".$id."'";
$result = $dbh->query($sqlDownload);

$download = $result->fetchAll();
$type = $download[0]['type'];
$size = $download[0]['size'];
$name = $download[0]['name'];
$content = $download[0]['content'];

header("Content-type: $type");
header("Content-Disposition: inline; filename=$name");
header("Content-length: $size");
header("Cache-Control: maxage=1");
header("Pragma: public");

echo $content;

exit;
}
}

我在想,也许我的某些标题语句有误?我很困惑该怎么办。我搜索了 php.ini,没有发现我认为需要更改的设置,我的 MySQL 最大数据包设置是 4 MB,因此应该下载 2 MB。

感谢您的帮助。

最佳答案

根据(http://dev.mysql.com/doc/refman/5.0/en/blob.html):

The maximum size of a BLOB or TEXT object is determined by its type, but the largest value you actually can transmit between the client and server is determined by the amount of available memory and the size of the communications buffers. You can change the message buffer size by changing the value of the max_allowed_packet variable, but you must do so for both the server and your client program.

根据 ( http://dev.mysql.com/doc/refman/5.0/en/server-parameters.html ),max_allowed_pa​​cket 的默认值为 1048576。

关于php - BLOB 下载截断为 1 MB 脚本适用于小于 1 MB 的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1579990/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com