downloadZipImg función pública (picAllArr $, $ enterprise_id) { // $ picAllArr = [ // 'https://dss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=2333857494,1212940832&fm=26&gp=0.jpg', // ' https://dss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=3808706043,3843571795&fm=26&gp=0.jpg ' //]; $ TMPDIR =' ./static/zip/images/ '; // / www similares / public / Subir / SI {(los file_exists ($ TMPDIR)!) // Crea una carpeta mkdir ($ TMPDIR, 0777, true); } // zipName = FECHA $ ( 'His') del mt_rand (1000, 9999) .. '.zip '; // nombre de archivo de almacenamiento $ = $ zipName enterprise_id' .zip' .; . $ ZipNameUrl = $ $ TMPDIR zipName ; // ruta del archivo // borrar archivos comprimidos para unlink ($ zipNameUrl); // eliminar un archivo de archivos generados // $ = new nueva postal \ ZipArchive (); SI (zip - $> Abrir ($ zipNameUrl, \ ZipArchive :: SOBRESCRIBIR) ==! true) { // sobrescribir parámetro anula el archivo de almacenamiento ya debe existir SI (zip - $> Abrir ($ zipNameUrl, \ :: ZipArchive el CREATE)! == true) { // el archivo no existe, crear una nueva los archivos se abren mediante los archivos de contenido adicional a la CREATE postal regreso de descarga falla, la carpeta no existe '; } } foreach ($ $ presentar picAllArr AS) { // determina si hay imagen $ isFile = $ this-> checkFileExists ( $ archivo ); if ($ isFile) {! el Continuar; } // rastreo contenido gráfico file_get_contents fileContent = $ ($ archivo); // Añadir imagen $ Archivo = substr ($ archivo, 0, -13); $ zip-> AddFromString (el nombre base ($ archivo), $ fileContent); } // Se cierra $ zip- > Close (); // ningún archivo SI {(file_exists ($ zipNameUrl)!) de retorno 'fallado la descarga, la imagen no existe o no se puede descargar'; } // cabecera ( "Cache-control: pública"); // cabecera ( "Content-la Descripción: Transferencia de archivos"); // cabecera ( 'Content-Disposition: attachment; filename =' $ zipName); // nombre de archivo. // header ( "Content-Type: application / zip"); // formato zip // // header ( "Content-Type :application / octet-stream "); // formato zip // cabecera ( "Content-Transfer- Encoding: binary"); // decirle al navegador, que es un archivo binario cabecera // ( 'Content-Length: '. Tamaño del archivo ($ zipNameUrl)); // indica al navegador, tamaño del archivo // // // los siguientes dos pasos debe ser // ob_clean (); // flush (); / / @ ReadFile ($ zipNameUrl); // unlink ($ zipNameUrl); // eliminar el archivo substr retorno ($ zipNameUrl, 2); }