Я хотел бы создать несколько .png изображений и добавить их в zip-архив для загрузки.
Я использую GD LIBRARY и ZipArchive
Изображения представляют собой комбинацию текста и изображений, полученных из цикла foreach запроса.
Фрагмент стоит тысячи слов
require_once '../gd_imagestyle.php';
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
foreach($db->query($sql) as $row) {
$foto = "../photos/".$row['foto'];
$ext = pathinfo($foto, PATHINFO_EXTENSION);
$my_img = imagecreatetruecolor( 400, 250 );
$text_colour = imagecolorallocate( $my_img, 0, 0, 0 );
if($ext == "png"){ // PICTURES CAN BE .png or .jpg
$thumbnail = imagecreatefrompng($foto);
}else{
$thumbnail = imagecreatefromjpeg($foto);
}
$tinypic = imagestyle($thumbnail, 'autosize:105 105'); // RESIZE THE PICTURE
imagecopy($my_img, $tinypic, 270, 85, 0, 0, 105, 105); // INSERT THE PICTURE
imagestring( $my_img, 2, 20, 65, "First and last name", $text_colour );
imagestring( $my_img, 2, 20, 120, "Birthplace", $text_colour );
imagecolorallocate( $text_color );
// header( "Content-type: image/png" ); // I COMMENTED THIS PART SINCE I WANT A ZIP FILE BACK
imagestring( $my_img, 5, 120, 65, $row['lastname'].' '.$row['firstname'], $text_colour );
imagestring( $my_img, 5, 120, 120, $row['birthplace'], $text_colour );
$singleImage = imagepng( $my_img );
imagedestroy( $my_img );
$zip->addFile($singleImage, 'newname'.$i.'.png'); //
$i++;
} // END FOREACH
$zip->close();
} // END ZipArchive
header("Content-Type: application/zip");
Сервер представляет пустой .zip (я называю это через ajax с другой страницы). Что я не рассматриваю?
Спасибо
Inve