其实我得到了zipfile。但我不需要从table.i想要选择用户ID文件的总文件...我尝试编码吼叫,我使用PHP和MySQL。
<?php
function zipFilesAndDownload($file_names,$archive_file_name,$file_path)
{
$zip = new ZipArchive();
if ($zip->open($archive_file_name, ZIPARCHIVE::CREATE )!==TRUE) {
exit("cannot open <$archive_file_name>\n");
}
foreach($file_names as $files)
{
$zip->addFile($file_path.$files,$files);
//echo $file_path.$files,$files."<br />";
}
$zip->close();
header("Content-type: application/zip");
header("Content-Disposition: attachment; filename=$archive_file_name");
header("Pragma: no-cache");
header("Expires: 0");
readfile("$archive_file_name");
exit;
}
require_once("config.php");
$cqurfetch=mysql_query("SELECT * FROM albums where user_id='$user_id' and accept='1'");
while($row = mysql_fetch_array($cqurfetch))
{
$file_names[] = $row['user_album_images'];
}
$archive_file_name=time().'.gallery.zip';
$file_path="/uploads/";
zipFilesAndDownload($file_names,$archive_file_name,$file_path);
?>
答案 0 :(得分:0)
经过许多小道后,我的问题得到了一个答案。
只有&#39; user_id&#39; 文件被压缩并存储在该zip文件夹中。
示例: - 强>
<?php
require_once("config.php");
$user_id = 49 ; //Just For your reference
$accept = 1 ; //Just For your reference
$sql = "SELECT * FROM albums where user_id='$user_id' and accept='$accept'";
$result = $con->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$array[] = $row["user_album_images"];
echo "user_album_images: " .$row["user_album_images"]. "<br>"; //This is also just for your reference
}
}
else{
echo "fail";
}
$file= "/uploads/gallery.zip"; //Zip file path
$zip = new ZipArchive;
echo "*****zip started.*****\n";
if ($zip->open($file, ZipArchive::CREATE) === TRUE) {
foreach($array as $key => $value)
{
$zip->addFile("/".$value);
}
$zip->close();
echo '^^^^^^Zip ended^^^^^^';
}
?>
我已在本地系统中测试过此代码,这与您的要求一样。
希望这有帮助