código

Descargar dos imágenes al mismo tiempo en php

Una solución a la limitación del protocolo HTTP de no poder obtener dos o mas archivos en un solo request; es generar un archivo zip con los archivos deseados y forzar su descargar.

descarga.php

<?php

$imgA = 'imagen-1.jpg';
$imgB = 'imagen-2.jpg';

$zipname = 'archivos.zip';
// iniciamos la clase
$zip = new ZipArchive; 

//Creamos el archivo
$zip->open('temp/'.$zipname, ZipArchive::CREATE);

//agregamos las imágenes, en la raíz del archivo zip, si deseamos agregar una carpeta agregaremos 'carpeta/'.

$zip->addFile('temp/'.$imgA, $imgA);
$zip->addFile('temp/'.$imgB, $imgB);
//cerramos el archivo
$zip->close();

/********
si queremos borrar las imagenes utilizamos unlink
**********/
unlink('temp/'.$imgA);
unlink('temp/'.$imgB);

//preparamos la descarga
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename='.$zipname);
header('Content-Length: ' . filesize('temp/'.$zipname));
readfile('temp/'.$zipname);

//Destruye el archivo zip
unlink('temp/'.$zipname); 

?>

Como siempre el ejemplo es sencillo para su fácil comprensión, podemos mejorarlo con consulta a una base de datos, generación de nuevos nombres, petición de los archivos por $_GET o $_POST, etc, etc.