Я пытаюсь отлаживать this script для запуска на localhost. $zip->status
возвращает 0
, который, согласно The Manual означает «без ошибок», но file_exists()
все еще возвращает false.Невозможно создать zip-архив
Я проверил вручную, и файл на самом деле не существует. Я запускаю WAMP на localhost.
Почему это ведет себя так? Как я могу это исправить?
Вот мой точный код:
$destination = "C:\wamp\www\temp\temp.zip";
$zip = new ZipArchive();
echo var_dump($zip);
echo "<br />";
$zzz = $zip->open($destination, ZipArchive::CREATE);
if($zzz === true) {
echo "created archive<br />";
}else{
//Var dump says it's true.. is that not a contradiction??
echo var_dump($zzz)."<br />Couldn't create zipArchive<br />";
}
//add the files
foreach($_SESSION['images'] as $file) {
$zip->addFile($file);
}
echo "Files ".$zip->numFiles."<br />Status ".$zip->status."<br />";
$zip->close();
if(!file_exists($destination)){
echo "destination doesnt exist";
}
А вот выход этой страницы ..
object(ZipArchive)[1]
public 'status' => int 0
public 'statusSys' => int 0
public 'numFiles' => int 0
public 'filename' => string '' (length=0)
public 'comment' => string '' (length=0)
created archive
Files 16
Status 0
destination doesnt exist
'echo var_dump();' избыточно. Вам нужно использовать 'var_dump();' Кроме того, когда вы перебираете через $ _SESSION, подумайте о добавлении 'var_dump ($ file);' для вывода имен файлов, чтобы узнать, являются ли они законными, читаемыми файлами. Предположительно, пустой почтовый файл не будет/не может быть написан, поэтому я подозреваю, что добавляемые файлы могут быть недействительными. –
@cale_b У меня есть 'if (false! == file_get_contents ($ fullimgpath, 0, null, 0,1)) {$ _SESSION ['images'] [$ n] = $ fullimgpath; } 'на другой странице, подтверждающей существование файла. –
@cale_b Должны ли файлы быть локальными? –