Problema al crear un archivo zip en php7 usando una consulta mysql
Publicado por jose (71 intervenciones) el 25/01/2020 08:46:53
Hola,
Estoy intentando crear un codigo para crear un archivo zip y lo baje usando una query de mysqli.
He intentado diferentes códigos y obtenido diferentes errores. En la última no tengo mensajes de errores, pero no funciona.
El archivo zip se crea bajo el nombre "Renta_J&J.zip", pero vacío. Y en vez bajarlo, se añade a la misma carpeta donde está el archivo php y vacío.
Esta es la sentencia que utilizo para llamar al código php:
Si hago dentro del while el output está correcto. Sólo hay dos registros de prueba.
No tengo mucha idea, He leído muchos forums y buscado código apropiado con no buenos resultados.
Estoy intentando crear un codigo para crear un archivo zip y lo baje usando una query de mysqli.
He intentado diferentes códigos y obtenido diferentes errores. En la última no tengo mensajes de errores, pero no funciona.
El archivo zip se crea bajo el nombre "Renta_J&J.zip", pero vacío. Y en vez bajarlo, se añade a la misma carpeta donde está el archivo php y vacío.
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
if (isset($_POST['copy_all'])) {
$ticket_date_from = $_POST['ticket_date_from'];
$ticket_date_to = $_POST['ticket_date_to'];
$zip = new ZipArchive();
$filename= "Renta_J&J.zip";
$query = "SELECT * FROM recibos WHERE ticket_date BETWEEN '$ticket_date_from' AND '$ticket_date_to'";
$search_result = filterTable($query);
$count_rows = mysqli_num_rows($search_result);
$row = mysqli_fetch_row($search_result);
if ($zip->open($filename,ZIPARCHIVE::CREATE)===true){
while($row = mysqli_fetch_array($search_result)){
$image_dir = $row['image_dir'];
$dir = "../upload/";
$image_file = $dir.$image_dir;
if (file_exists($image_file ) && is_file($image_file )){
$zip->addfile($image_file, $image_file );
}
}
$zip->close();
}else{
echo 'Error '.$filename;
}
}
Esta es la sentencia que utilizo para llamar al código php:
1
<input class="button" type="submit" name="copy_all" value="Copy files"/>
Si hago
1
echo $image_file;
1
/volume1/web/recibos/upload/34-55-tcp_ip_frentea_iso.png/volume1/web/recibos/upload/10-recibo.PNG
No tengo mucha idea, He leído muchos forums y buscado código apropiado con no buenos resultados.
Valora esta pregunta


0