【发布时间】:2018-08-03 09:11:01
【问题描述】:
我正在尝试在 PHP 中提取我提供的路径以及文件名的 zip 文件,所有内容都是 100% 正确的,但是当我运行脚本时它仍然返回 Err_Code 19 。文件不是 zip 存档。主要模块是它从谷歌驱动器下载 zip 文件,然后提取它并恢复整个站点,当我运行相同的模块并从 FTP 或 Dropbox 或 S3 下载文件时它工作得非常好,但是当从驱动器下载它时它开始给出我这个错误这是我正在尝试的代码。
$extractTo = wp_upload_dir()['basedir'];
$zip = new ZipArchive;
$res = $zip->open($zipFile);
if (is_resource($res)) {
echo 'HERE'; exit;
$zip->extractTo($extractTo);
$zip->close();
$dirs = array_filter(glob($extractTo . '/*'), 'is_dir');
foreach ($dirs as $dir) {
$fileName = basename($dir);
if ($fileName == 'themes') {
$pathFrom = $extractTo . '/themes';
$pathTo = get_home_path() . 'wp-content\themes';
Helper::moveDirectories($pathFrom, $pathTo);
Helper::removeDirectories($pathFrom);
} else if ($fileName == 'files') {
$pathFrom = $extractTo . '/files';
$pathTo = get_home_path() . 'wp-content\uploads';
Helper::moveDirectories($pathFrom, $pathTo);
Helper::removeDirectories($pathFrom);
} else if ($fileName == 'plugins') {
$pathFrom = $extractTo . '/plugins';
$pathTo = get_home_path() . 'wp-content\plugins';
Helper::moveDirectories($pathFrom, $pathTo);
Helper::removeDirectories($pathFrom);
} else if ($fileName == 'database') {
$pathFrom = $extractTo . '/database';
$filename = array_filter(glob($pathFrom . '/*'));
Helper::DelDatabse();
Helper::importDatabase($filename[0]);
Helper::removeDirectories($pathFrom);
}
}
echo 'Done!';
} else {
echo $res;
}
不知道是什么问题或可能导致这个奇怪问题的任何帮助将不胜感激。谢谢。
可能重复
但没有一个解决方案有效。
【问题讨论】:
-
显示您用于下载 zip 的 vi6ce。另外,您确认文件的大小和校验和了吗?
-
是的,文件大小目前不超过 1MB
标签: php wordpress google-drive-api ziparchive