将文件添加到zip存档的特定文件夹中

时间:2014-02-24 19:04:13

标签: php zip

我有一个包含这种结构的zip存档(Open Document Spread Sheet - ods):

Configurations2   | File Folder
META-INF          | File Folder
Pictures          | File Folder
Thumbnails        | File Folder
meta.xml          | XML Document
mimetype          | File
settings.xml      | XML Document
styles.xml        | XML Document

我现在要做的是将两个文件添加到zip存档

        
  1. 一个名为`content.xml`的文件到.ods结构的
  2.     
  3. 另一个名为`image.png`的文件到 ./ Puctures 文件夹
  4. 将文件添加到zip存档的根目录不是问题

    // `$zipfile` contains the sructure as desribed above
    // `$content_xml` contains a xml string
    // `$image` contains the `image.png`
    $zip = new ZipArchive();
    $zip->open($zipfile, ZIPARCHIVE::CREATE);
    $zip->addFromString('content.xml',$content_xml);
    $zip->close();
    

    如何将$image添加到./Pictures? 任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:3)

我不使用PHP,但您只是添加完整路径的文件,例如this

$zipFile->addFile($folder . $f, $subfolder . $f);

修改

刚检查过......工作正常。假设ZIP包含代码有效的icons文件夹(如果没有,请添加一个addEmtpyDir('icons')):

<?php

$zip = new ZipArchive();
$zip->open('./test.odt', ZIPARCHIVE::CREATE);
$zip->addFile('./favicon.ico', 'icons/fav.ico');
$zip->close();

?>