Como descargar un zip de una carpeta con sus subcarpetas y archivos?
Publicado por Painzer (7 intervenciones) el 20/11/2018 07:37:52
Buenos días programadores!
Necesito ayuda con esto, ya que llevo días intentando que me funcione pero no hay manera.
Tras buscar mucho en muchos foros y páginas, encontré este código que me parece funcionar porque lee los archivos de la ruta que le digo pero al crear el zip está vacío o me da error al abrirlo una vez descargado.
Alguien que me pueda ayudar por favor.
Un saludo,
Painzer.
Necesito ayuda con esto, ya que llevo días intentando que me funcione pero no hay manera.
Tras buscar mucho en muchos foros y páginas, encontré este código que me parece funcionar porque lee los archivos de la ruta que le digo pero al crear el zip está vacío o me da error al abrirlo una vez descargado.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
function agregar_zip($dir, $zip) {
if (is_dir($dir)) {
if ($da = opendir($dir)) {
while (($archivo = readdir($da)) !== false) {
if (is_dir($dir . $archivo) && $archivo != "." && $archivo != "..") {
echo "<strong>Creando directorio: $dir$archivo</strong><br/>";
agregar_zip($dir . $archivo . "/", $zip);
} elseif (is_file($dir . $archivo) && $archivo != "." && $archivo != "..") {
echo "Agregando archivo: $dir$archivo <br/>";
$zip->addFile($dir . $archivo, $dir . $archivo);
}
}
closedir($da);
}
}
}
ini_set("memory_limit","1256M");
$zip = new ZipArchive();
$dir = '../zip/';
$rutaFinal = "../";
$archivoZip = "descarga.zip";
if ($zip->open($archivoZip, ZIPARCHIVE::CREATE) === true) {
agregar_zip($dir, $zip);
$zip->close();
if (file_exists($rutaFinal . "/" . $archivoZip)) {
echo "Proceso Finalizado!! <br/><br/>
Descargar: <a href='$rutaFinal/$archivoZip'>$archivoZip</a>";
} else {
echo "Error, archivo zip no ha sido creado!!";
}
}
Alguien que me pueda ayudar por favor.
Un saludo,
Painzer.
Valora esta pregunta
0