我有简单的脚本,例如add-to-cart,我可以放置多个文件供以后下载。当用户点击添加到购物车时,我将文件的ID存储在会话中,当他点击下载所有基于ID的存储时,查找数据库表并下载文件。
所有文件都存储在同一个文件夹中,我将名字保存在表格中。我遇到的问题是,在表格中我有3列,其中包含不同的文件(项目)。这是我到目前为止所做的工作,正在为一个专栏工作。问题是如何添加其他两列?
$files = $_SESSION['itemid'];
$valid_files = array();
if(is_array($files)) {
foreach($files as $file) {
$sql = "SELECT * FROM document_upload WHERE upload_id = :id";
$result = $pdo->prepare($sql);
$result->bindParam(":id", $file);
$result->execute();
$resArray = $result->fetch();
if (file_exists($filePath . $resArray['upload_lesson_plan'])){
$valid_files[] = $resArray;
}
}
}
if(count($valid_files > 0)){
$zip = new ZipArchive();
$zip_name = "zipfile.zip";
if($zip->open($zip_name, ZIPARCHIVE::CREATE)!==TRUE){
$error .= "* Sorry ZIP creation failed at this time";
}
foreach($valid_files as $res){
$zip->addFile($filePath.$res['upload_lesson_plan']);
// columns that I want to add and take files from...
//$zip->addFile($filePath.$res['upload_worksheet']);
//$zip->addFile($filePath.$res['upload_materials']);
}
这些是我想从
获取文件的列 //$zip->addFile($filePath.$res['upload_worksheet']);
//$zip->addFile($filePath.$res['upload_materials']);
我尝试了类似这样的东西但是没有用...只是向我显示空白页面并且没有下载任何内容而且没有错误。
if (file_exists($filePath . $resArray['upload_lesson_plan'] || $filePath . $resArray['upload_worksheet'] || $filePath . $resArray['upload_materials']))
它们存储在列中,它们是以逗号分隔的同一列中的多个文件。
答案 0 :(得分:0)
根据你的说法
它们存储在列中,它们是以逗号分隔的同一列中的多个文件。
您可以尝试这种方式。爆炸他们:
delOptions
然后像这样打电话给他们
formatoptions
答案 1 :(得分:-1)
刚
foreach(['upload_lesson_plan', 'upload_worksheet', 'upload_materials'] as $col){
if (file_exists($filePath . $resArray[$col])){
$valid_files[] = $resArray[$col];
}
}