PHP ZipArchive没有添加任何文件(Windows)

前端之家收集整理的这篇文章主要介绍了PHP ZipArchive没有添加任何文件(Windows)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我没有把一个文件放到一个新的zip存档中.

makeZipTest.PHP

<?PHP

$destination = __DIR__.'/makeZipTest.zip';
$fileToZip = __DIR__.'/hello.txt';

$zip = new ZipArchive();
if (true !== $zip->open($destination,ZIPARCHIVE::OVERWRITE)) {
    die("Problem opening zip $destination");
}
if (!$zip->addFile($fileToZip)) {
    die("Could not add file $fileToZip");
}
echo "numfiles: " . $zip->numFiles . "\n";
echo "status: " . $zip->status . "\n";
$zip->close();

zip已创建,但为空.然而,没有触发任何错误.

出了什么问题?

在某些配置中,当将文件添加到zip存档时,PHP无法正确获取本地名称,并且必须手动提供此信息.因此,使用addFile()的第二个参数可能会解决此问题.

ZipArchive::addFile

Parameters

  • filename
    The path to the file to add.
  • localname
    If supplied,this is the local name inside the ZIP archive that will override the filename.

PHP documentation: ZipArchive::addFile

$zip->addFile(
    $fileToZip,basename($fileToZip)
);

您可能必须调整代码以获得正确的树结构,因为basename()将从文件名之外的路径中删除所有内容.

猜你在找的PHP相关文章