Я пытаюсь написать php (новый для php), который загружает zip-файл с удаленного сервера с помощью curl и распаковывает его в каталог темы wordpress. Распаковка через php не дает отчета о результате 19, который из того, что я нашел, не указывает на zip-файл. Однако, когда я проверяю каталог, там находится zip-файл. Если я разархивирую его, я получаю файл zip.cpgz. Я не уверен, что это проблема с моим кодом или это способ отправки файла сервером. Вот мой код. Благодарю.Загрузка zip-файла из curl-результатов в файл cpgz после распаковки
$dirpath = dirname(__FILE__);
$themepath = substr($dirpath, 0, strrpos($dirpath, 'wp-content') + 10)."/themes/";
//make call to api to get site information
$pagedata = file_get_contents("https://ourwebsite/downloadzip.php?industryid=$industry");
$jsondata = json_decode($pagedata);
$fileToWrite = $themepath.basename($jsondata->zip_file_url);
$zipfile = curl_init();
curl_setopt($zipfile, CURLOPT_URL, $jsondata->zip_file_url);
curl_setopt($zipfile, CURLOPT_HEADER, 1);
curl_setopt($zipfile, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($zipfile, CURLOPT_BINARYTRANSFER, 1);
$file = curl_exec($zipfile);
if ($file == FALSE){
echo "FAILED";
}else{
$fileData = fopen($fileToWrite,"wb");
fputs($fileData,$file);
}
curl_close($zipfile);
if (file_exists($fileToWrite)){
$zip = new ZipArchive;
$res = $zip->open($fileToWrite);
if ($res === TRUE)
{
$zip->extractTo($themepath);
$zip->close();
echo 'Theme file has been extracted.';
}
else
{
echo 'There was a problem opening the theme zip file: '.$res;
}
}
else{
echo("There was an error downloading, writing or accessing the theme file.");
}
Спасибо. Я изменил свой код, чтобы более точно соответствовать вашим требованиям, но я не уверен, какова была проблема, вызывающая эту проблему. Можете ли вы ответить на это? Еще раз спасибо! –
Возможно, это временное место, где вы сохранили права доступа к файлам или файлам. –
Вы прокомментировали код, но, по сути, это просто скомпилированный код без объяснения того, что было не так, или как вы его исправили. – kontur