PHP - Comprimir contenido de carpeta

 
Vista:
Imágen de perfil de jose
Val: 184
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Comprimir contenido de carpeta

Publicado por jose (67 intervenciones) el 04/02/2020 16:35:26
Buenas tardes,

Necesito comprimir el contenido de una carpeta y descargarla a través de un botón de html. Mi problema es que el archivo que baja está vació.

Sin embargo si que lee al hacer un
1
echo $dir.$file
en el bucle for me pinta el contenido del directorio. Pero no llega a añadir el contenido en un zip
1
$zip->addFile($dir.$file , $dir.$file);
, el después de descargarlo aparece vacío.

Llamo al código de creacción de zip con un input submin
1
<input class="button" type="submit" name="createzip" value="Comprimir archivos para la renta" />


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
34
35
36
37
38
39
40
41
42
43
44
if (isset($_POST['createzip'])) {
 
$dir = "../renta/";
$dir_open=opendir($dir);
 
 
  $files = array();
    while ($current = readdir($dir_open)){
        if( $current != "." && $current != "..") {
            if(is_dir($dir.$current)) {
              //  echo $dir.$current.'/';
            }
            else {
                //echo $current;
                $files[] = $current;
            }
        }
    }
 
      $zip = new ZipArchive;
    for($i=0; $i<count( $files ); $i++){
 
          $file=$files[$i];
          echo $file."</br>";
          $zip->addFile($dir.$file , $dir.$file);
    }
 
    $filename = 'Renta_J&J.zip';
 
 
    //abrimos el directorio y lo asignamos a $da
    $zip->open($filename, ZipArchive::CREATE);
 
    $zip->close();
 
      header("Content-type: application/zip");
      header("Content-disposition: attachment; filename='$filename");
      header("Content-length: " . filesize($filename));
      header("Pragma: no-cache");
      header("Expires: 0");
      readfile("$filename");
      unlink($filename);
 
  }

Agradecería cualquier tipo de ayuda.

Muchas gracias,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder