Cuando se utiliza el sistema para comprimir un directorio de un montón de salida se muestra

StackOverflow https://stackoverflow.com/questions/1698520

  •  18-09-2019
  •  | 
  •  

Pregunta

Estoy tratando de escribir un script que permite a un administrador de un sistema de carga de fotos descargar todas sus fotos a la vez. Actualmente estoy usando

system('zip -r '.$_SERVER['DOCUMENT_ROOT'].'/zip.zip '.$_SERVER['DOCUMENT_ROOT'].'/images/photo-uploads';

para comprimir los archivos, pero esto parece hacerse eco de los nombres y ubicaciones de todos los archivos en la página. ¿Hay alguna forma de evitar esto? Si no es así cuál es la mejor manera de comprimir archivos en el servidor.

¿Fue útil?

Solución

Es posible utilizar exec('zip -r '.$_SERVER['DOCUMENT_ROOT'].'/zip.zip '.$_SERVER['DOCUMENT_ROOT'].'/images/photo-uploads'); lugar.

Otros consejos

Puede utilizar ZipArchive extensión en su lugar (si está permitido) del sistema de llamada zip así, porque hace que su código no portátil.

También puede utilizar el almacenamiento en búfer de salida:

ob_start();
system('zip -r '.$_SERVER['DOCUMENT_ROOT'].'/zip.zip '.$_SERVER['DOCUMENT_ROOT'].'/images/photo-uploads';
ob_end_clean();

Esto detendrá cualquier salida de ser mostrado desde el comando del sistema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top