У меня следующая проблема: на моем сайте люди могут скачивать zip-файлы с изображениями внутри. В зависимости от изображений они находятся в том или ином каталоге. Загрузка осуществляется через ajax вызов файла php, который возвращает этот zip-файл. Проблема в том, что zip-файл копирует структуру папок, имеющуюся у меня локально, так что внутри zip-файла есть несколько папок, пока я не доберусь до файлов. Я хотел бы знать, как поместить все файлы в одну папку, чтобы при открытии почтового индекса вы видели изображения.
Это мой ajax звонок:
$.ajax({
type: "POST",
url: "download.php",
data: {
'imagenes': imagenes,
'nombreZip': nombreZip
},
success: function(data){
window.location = data;
$('#fondoDescarga').fadeOut();
}
});
Где "imagenes" - это массив с файлами, включая root, что-то вроде:
0: "contenido / all / MyFolder / Image.tif" 1: "contenido / all / MyFolder / Image2 .tif "2:" contenido / all / MyFolder / Image3.tif "
И это файл php, который генерирует zip:
<?php
$error = ""; //error holder
$post = $_POST;
if(extension_loaded('zip')) {
// Checking ZIP extension is available
// Checking files are selected
$zip = new ZipArchive(); // Load zip library
$zip_name = $_POST['nombreZip'].".zip"; // Zip name
if($zip->open($zip_name, ZIPARCHIVE::CREATE)!==TRUE) {
// Opening zip file to load files
$error .= "* Sorry ZIP creation failed at this time";
}
foreach($post['imagenes'] as $file) {
$zip->addFile($file);
}
$zip->close();
echo $zip_name;
} else {
$error .= "* You dont have ZIP extension";
}
?>
Это довольно просто, и это работает, но это немного раздражает, заставляя пользователя просматривать так много папок.
Спасибо!