Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Kilka wygenerowanych obrazków w archiwum ZIP
KR2615
post
Post #1





Grupa: Zarejestrowani
Postów: 311
Pomógł: 13
Dołączył: 7.05.2007

Ostrzeżenie: (0%)
-----


Witam
Przygotowałem właśnie ksiązeczkę opłat dla swoich abonentów. Stworzyłem do tego funkcję genrującą obraz z wypełnionym drukiem. Gdy umieszczam ją w liku, wszystko jest ok. Jeśli natomiast chciałbym ją wywołać 12 razy a wynik umieścić w pliku zip to i tak w przegladarce pojawia sie pierwszy plik a archiwum .zip posaida dwanaście pustych plików. Nie wiem, co robie nie tak. Oto fragment kodu:

  1. function maketemplate($month = 0) {
  2.  
  3. header("Content-type: image/jpeg");
  4. header('Content-Disposition: attachment; filename="'. $month. '.jpg"');
  5.  
  6. $image = imagecreatefromjpeg("druk.jpg");
  7. $black = imagecolorallocate($image, 0, 0, 0);
  8. $font = 'Lucida.ttf';
  9.  
  10. imagettftext($image, 16, 0, 150, 332, $black, $font, 'Nazwa firmy');
  11.  
  12. imagejpeg($image);
  13. imagedestroy($image);
  14. }


  1. $zip = new ZipArchive();
  2. if ($zip->open("/tmp/test.zip", ZIPARCHIVE::CREATE) !==TRUE) {
  3. exit ();
  4. }
  5. for($i=1; $i<12; $i++) {
  6. $zip->addFromString("$i.txt",maketemplate($i));
  7. }
  8. $zip->close();
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
franki01
post
Post #2





Grupa: Zarejestrowani
Postów: 508
Pomógł: 75
Dołączył: 2.11.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


  1. function maketemplate($month = 0) {
  2.  
  3. header("Content-type: image/jpeg");
  4. header('Content-Disposition: attachment; filename="'. $month. '.jpg"');
  5.  
  6. $image = imagecreatefromjpeg("druk.jpg");
  7. $black = imagecolorallocate($image, 0, 0, 0);
  8. $font = 'Lucida.ttf';
  9.  
  10. imagettftext($image, 16, 0, 150, 332, $black, $font, 'Nazwa firmy');
  11.  
  12. imagejpeg($image);
  13. imagedestroy($image);
  14. }


  1. $file = "/tmp/test.zip";
  2. $zip = new ZipArchive();
  3. if ($zip->open($file, ZIPARCHIVE::CREATE) !==TRUE) {
  4. exit ();
  5. }
  6. for($i=1; $i<12; $i++) {
  7. maketemplate($i);
  8. $text = ob_get_clean();
  9. $zip->addFromString("$i.jpg", $text);
  10. }
  11. $zip->close();
  12.  
  13. header('Content-Description: File Transfer');
  14. header('Content-Type: application/octet-stream');
  15. header('Content-Disposition: attachment; filename='.basename($file));
  16. header('Content-Transfer-Encoding: binary');
  17. header('Expires: 0');
  18. header('Cache-Control: must-revalidate');
  19. header('Pragma: public');
  20. header('Content-Length: ' . filesize($file));
  21. flush();
  22. readfile($file);


Funkcja niezmieniona, tylko drugi kod.

Ten post edytował franki01 21.03.2013, 19:34:20
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.12.2025 - 15:33