我正试图用下面的代码制作拉链。在我的本地主机上运行得很好。但是当我将它传输到DirectAdmin服务器时,它会返回错误代码9 ZipArchive::ER_NOENT : return 'N No such file';。
我不知道如何修复它来创建zip
define('ABSPATH', dirname(__FILE__) . '/' );
$dest = ABSPATH.'zip_file_name.zip';
$file = ABSPATH.'test.php';
$zip = new ZipArchive;
$res = $zip->open($dest, ZIPARCHIVE::OVERWRITE);
if ($res === TRUE) {
echo 'ok';
$zip->addFile($file, $file);
$zip->close();
} else {
echo 'failed, code:' . $res;
}发布于 2018-12-16 15:43:14
在本地主机(Windows)上测试您的脚本。我得到错误消息“失败,代码:9”。
@查看http://php.net/manual/en/ziparchive.open.php并搜索"ZipArchive::ER_NOENT“。
我认为你需要创建压缩文件。
当我添加ZipArchive::CREATE时,它可以工作(输出"ok"):
define('ABSPATH', dirname(__FILE__) . '/' );
$dest = ABSPATH.'zip_file_name.zip';
$file = ABSPATH.'test.php';
$zip = new ZipArchive;
$res = $zip->open($dest, ZipArchive::CREATE | ZIPARCHIVE::OVERWRITE);
if ($res === TRUE) {
echo 'ok';
$zip->addFile($file, $file);
$zip->close();
} else {
echo 'failed, code:' . $res;
}--更新--
zip_file_name.zip中的文件zip_file_name.zip具有完整的窗口路径。根级(Windows环境)的zip文件中有一个目录"C:“。这是正确的吗?
如果不需要绝对路径,可以使用相对路径:
define('ABSPATH', dirname(__FILE__) . '/' );
$dest = ABSPATH.'zip_file_name.zip';
$relativeFile = 'test.php';
$absoluteFile = ABSPATH.$relativeFile;
$zip = new ZipArchive;
$res = $zip->open($dest, ZipArchive::CREATE | ZIPARCHIVE::OVERWRITE);
if ($res === TRUE) {
echo 'ok';
$zip->addFile($absoluteFile, $relativeFile);
$zip->close();
} else {
echo 'failed, code:' . $res;
}https://stackoverflow.com/questions/53793801
复制相似问题