0

我有一个图像文件列表。我需要以 zip 格式存档这些文件并使存档文件可下载。我见过Drupal 7ArchiverZip中定义的system module类。但我无法创建一个zip文件。我怎样才能在Drupal 7中做到这一点?这有什么或习惯吗?这个你能帮我吗。hooksmodules

更新

以下是代码:

$zip = new ArchiverZip('archive.zip');
foreach($_POST['img'] as $fid):
    $query = db_select('file_managed', 'fn')
            ->condition('fid', $fid)
            ->fields('fn', array('filename'));
    $result = $query->execute();

    foreach($result as $row) {
        if(file_exists('sites/default/files/'.$row->filename)){
            var_dump($zip->add($base_path.'sites/default/files/'.$row->filename));
        }
    }
 endforeach;

这反映了以下错误

例外:无法在 ArchiverZip->__construct() 中打开 archive.zip(basepath\modules\system\system.archiver.inc的第 91 行)。请帮我解决一下这个 。.

4

1 回答 1

0

好吧,我错过了在创建类之前创建archive.zip文件,ArchiverZip因此之前的归档操作失败了。. 现在代码将如下所示:

$filename = 'archive.zip';
fopen($filename, 'w');
$zip = new ArchiverZip($filename);
foreach($_POST['img'] as $fid):
    $query = db_select('file_managed', 'fn')
            ->condition('fid', $fid)
            ->fields('fn', array('filename'));
    $result = $query->execute();

    foreach($result as $row) {
        if(file_exists('sites/default/files/'.$row->filename)){
            $zip->add($base_path.'sites/default/files/'.$row->filename);
        }
    }
 endforeach;
于 2013-03-19T06:37:43.680 回答