在下载php时将文件添加到包含内容的zip文件中

时间:2015-01-02 11:08:07

标签: php memory zip on-the-fly

我想将文件.txt添加到带有图像的zip文件中 在下载zip时,我想添加文件.txt而不影响原始文件。

那么,有可能做到这一点吗?或者唯一的方法是将zip文件解压缩到临时文件夹,然后添加txt文件并将其删除?

我尝试使用tmpfile,但它只创建了一个临时文件

1 个答案:

答案 0 :(得分:0)

您可以这样做:

$files = array(
    'file1',
    'file2'
);

$tmp_file = tmpfile();
$zip->open($tmp_file, ZipArchive::CREATE);

# loop through each file
foreach($files as $file){

    # download file
    $download_file = file_get_contents($file);

    #add it to the zip
    $zip->addFromString(basename($file),$download_file);
}

# close zip
$zip->close();

# send the file to the browser as a download
header('Content-disposition: attachment; filename=new-zipfile.zip');
header('Content-type: application/zip');
readfile($tmp_file);