在php中强制下载多个blob文件
我想在我的平台上添加一个方法,允许用户从一个应用程序下载所有文件,这些文件将被压缩。每个应用程序由多个文件组成,这些文件存储在数据库中文件表的单独行中 我尝试了许多选项,但似乎无法将实际文件添加到zip 这是我目前的代码:在php中强制下载多个blob文件,php,mysql,zip,blob,ziparchive,Php,Mysql,Zip,Blob,Ziparchive,我想在我的平台上添加一个方法,允许用户从一个应用程序下载所有文件,这些文件将被压缩。每个应用程序由多个文件组成,这些文件存储在数据库中文件表的单独行中 我尝试了许多选项,但似乎无法将实际文件添加到zip 这是我目前的代码: $sql = "SELECT * FROM files WHERE applications_id = :applications_id"; $stmt = $db->prepare($sql); $stmt->bindParam(':
$sql = "SELECT * FROM files WHERE applications_id = :applications_id";
$stmt = $db->prepare($sql);
$stmt->bindParam(':applications_id', $applications_id, PDO::PARAM_INT);
$stmt->execute();
$items = $stmt->fetchAll();
$zipfilename = 'temp_' . time() . '.zip';
$zip = new ZipArchive;
$zip->open($zipfilename, ZipArchive::CREATE);
foreach ($items as $item) {
//$zip->addFromString($item['filename'],$item['filename']);
}
$zip->close();
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename='.$zipfilename);
header('Content-Length: ' . filesize($zipfilename));
readfile($zipfilename);
exit();
任何帮助都将不胜感激 ---我从未在PDO中这样做过,但我认为您需要使用
PARAM_LOB
来处理blob。我似乎没有收到任何错误,只是没有找到添加多个blob的方法。单个的已经可以不用压缩了。看看这个答案(虽然是mysql),你需要一个while($row=mysql\u fetch\u assoc($ImageCollect)){…}
,所以在你的例子中,这类似于PDO::fetch\u assoc
。我希望这能有所帮助。问题是我的文件(图像/文本/pdf)本身就在de数据库中。因此,没有文件的实际路径。我想是的,但这就是我所缺少的我从来没有在PDO中这样做过,但我认为您需要使用PARAM_LOB
来处理blob。我似乎没有收到任何错误,只是没有找到添加多个blob的方法。单个的已经可以不用压缩了。看看这个答案(虽然是mysql),你需要一个while($row=mysql\u fetch\u assoc($ImageCollect)){…}
,所以在你的例子中,这类似于PDO::fetch\u assoc
。我希望这能有所帮助。问题是我的文件(图像/文本/pdf)本身就在de数据库中。因此,没有文件的实际路径。我想是的,但这正是我所缺少的。