ребята! Я видел много сообщений об использовании ZipArchive и о том, как избавиться от структуры пути внутри zip. Итак, вот мой код:PHP ZipArchive по-прежнему остается путь к файлу, даже если файл добавлен без пути
$zipname = $post->post_title.".zip";
$zip = new ZipArchive;
$zip->open($zipname, ZipArchive::CREATE);
foreach($gallery as $img) {
$attachment = get_attached_file($img['id']);
$zip->addFile($attachment, pathinfo($attachment,PATHINFO_BASENAME));
}
$zip->close();
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename='.$zipname);
header('Content-Length: ' . filesize($zipname));
readfile($zipname);
exit;
Проблема заключается в том, что почтовый файл содержит изображение без пути, F.E. /image.jpg и одно и то же изображение в нескольких каталогах, как показано на сервере /path/to/the/file/image.jpg.
Итак, я не уверен, почему это происходит. Может ли кто-нибудь помочь в этом?
Спасибо за попытку, может быть, я не получил ты прав, но вы видите, у меня есть это как this: $ zip-> addFile ($ attachment, pathinfo ($ attachment, PATHINFO_BASENAME)); где $ attachment - полный путь к файлу. Я использую pathinfo для извлечения только имени файла, поэтому zip-файл будет иметь следующее изображение: /images.jpg. Но моя проблема в том, что файл добавлен как /image.jpg AND /path/to/file/image.jpg – Swagger
Вы уверены, что по некоторым причинам вы не открываете файл, который уже был создан? В качестве хорошей практики вы должны проверить вывод функций 'open' и' addFile' (то есть, что они не возвращают 'false') – magnetik