Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]upload zdjecia wraz z generowaniem miniaturek, problem podczas generowania plików png
b0nz0
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 18.05.2008

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


Witam mam problem odnosnie wysyłania zdjec na serwer typu png .
Mam własna galerie która przy uploadzie tworzy miniaturke zdjecia automatycznie.Zdjecie jest zapisywane oddzielnie do innego katalogu natomiant miniaturka do innego.Ta czesc kodu działa mi dla jpg i gifów ,przy niwielkiej modernizacji podstawowych funkcji typu imagegif zaminiam na imagepng itd. Natomiast dla rozszerzenia png nie działa .wysyła zdjecie i mianiaturke ale niestety jej nie wyswietla .Natomiast jesli zdjecie i miniatórke wrzuce recznie wszystko wyswietla ok wiec to wina tego kodu a nie obsługi tego typu lików na serwerze.Z góry dziekuje za pomoc.
Oto częsc kodu :

  1. <?php
  2. $plik_tmp = $_FILES['pliki']['tmp_name'];
  3. $plik_nazwa = $_FILES['pliki']['name'];
  4. $plik_rozmiar = $_FILES['pliki']['size'];
  5.  
  6. if(is_uploaded_file($plik_tmp)){
  7. $sp = explode(".",$plik_nazwa);
  8. if ($sp[1]=="GIF" || $sp[1]=="gif"){
  9.  if($plik_rozmiar <="9000000"){
  10.  if(move_uploaded_file($plik_tmp,"zdjecia/".$plik_nazwa)){
  11.  // ustalanie nazwy pliku
  12.  $sciezka = pathinfo($plik_nazwa);
  13. if(copy("zdjecia/".$plik_nazwa, "miniaturki/".$plik_nazwa)){
  14. //generowanie wielkosci zdjecia( max 600 x 600 )
  15. $wymiar = getimagesize("zdjecia/".$plik_nazwa); // wymiary oryginalnego obrazka
  16. if($wymiar[0] > $wymiar[1]){ $wys_nor = round((600*$wymiar[1]/$wymiar[0]), 0); $szer_nor = 600; }
  17. if($wymiar[0] < $wymiar[1]){ $szer_nor = round((600*$wymiar[0]/$wymiar[1]), 0); $wys_nor = 600; }
  18. if($wymiar[0] == $wymiar[1]){ $wys_nor = 600; $szer_nor = 600; }
  19. $PustyObrazek = imagecreatetruecolor($szer_nor, $wys_nor);
  20. $nowy = imagecreatefromgif("zdjecia/".$plik_nazwa);
  21. imagecopyresized($PustyObrazek, $nowy, 0, 0, 0, 0, $szer_nor, $wys_nor, $wymiar[0], $wymiar[1]);
  22. // tworzenie miniatury zdjęcia o wymiarze ( max 100 x 100 )
  23. if($wymiar[0] > $wymiar[1]){ $wys_mini = round((100*$wymiar[1]/$wymiar[0]), 0); $szer_mini = 100; }
  24. if($wymiar[0] < $wymiar[1]){ $szer_mini = round((100*$wymiar[0]/$wymiar[1]), 0); $wys_mini = 100; }
  25. if($wymiar[0] == $wymiar[1]){ $wys_mini = 100; $szer_mini = 100; }
  26. $mini = imagecreatetruecolor($szer_mini, $wys_mini);
  27. $nowy = imagecreatefromgif("zdjecia/".$plik_nazwa);
  28. imagecopyresized($mini, $nowy, 0, 0, 0, 0, $szer_mini, $wys_mini, $wymiar[0], $wymiar[1]);
  29. // tworzenie zdjęcia i miniatury
  30. imagegif($PustyObrazek, "zdjecia/".$plik_nazwa, 100) && imagegif($mini, "miniaturki/".$plik_nazwa, 100);
  31.  
  32. ?>


Ten post edytował b0nz0 19.05.2008, 00:01:51
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
b0nz0
post
Post #2





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 18.05.2008

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


No ale własnie chodzi o to że błedu wogule nie wyzuca tylko to przetworzone zdjecie w galerii sie nie wyswietla nie weim czego? A wielkosc zapisuje na 33 KB bezwzgledu ile wysyłane zdjecie zajmuje.

  1. <?php
  2. if ($sp[1]=="PNG" || $sp[1]=="png"){
  3.  if($plik_rozmiar <="9000000"){
  4.  if(move_uploaded_file($plik_tmp,"zdjecia/".$plik_nazwa)){
  5.  $sciezka = pathinfo($plik_nazwa);
  6. if(copy("zdjecia/".$plik_nazwa, "miniaturki/".$plik_nazwa)){
  7. $wymiar = getimagesize("zdjecia/".$plik_nazwa); // wymiary oryginalnego obrazka
  8. if($wymiar[0] > $wymiar[1]){ $wys_nor = round((600*$wymiar[1]/$wymiar[0]), 0); $szer_nor = 600; }
  9. if($wymiar[0] < $wymiar[1]){ $szer_nor = round((600*$wymiar[0]/$wymiar[1]), 0); $wys_nor = 600; }
  10. if($wymiar[0] == $wymiar[1]){ $wys_nor = 600; $szer_nor = 600; }
  11. $PustyObrazek = imagecreatetruecolor($szer_nor, $wys_nor);
  12. ?>


dalsza czesc:
  1. <?php
  2. $nowy = imagecreatefrompng("zdjecia/".$plik_nazwa);
  3. imagecopyresized($PustyObrazek, $nowy, 0, 0, 0, 0, $szer_nor, $wys_nor, $wymiar[0], $wymiar[1]);
  4. if($wymiar[0] > $wymiar[1]){ $wys_mini = round((100*$wymiar[1]/$wymiar[0]), 0); $szer_mini = 100; }
  5. if($wymiar[0] < $wymiar[1]){ $szer_mini = round((100*$wymiar[0]/$wymiar[1]), 0); $wys_mini = 100; }
  6. if($wymiar[0] == $wymiar[1]){ $wys_mini = 100; $szer_mini = 100; }
  7. $mini = imagecreatetruecolor($szer_mini, $wys_mini);
  8. $nowy = imagecreatefrompng("zdjecia/".$plik_nazwa);
  9. imagecopyresized($mini, $nowy, 0, 0, 0, 0, $szer_mini, $wys_mini, $wymiar[0], $wymiar[1]);
  10. imagepng($PustyObrazek, "zdjecia/".$plik_nazwa, 100) && imagepng($mini, "miniaturki/".$plik_nazwa, 100);
  11. ?>
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: 5.10.2025 - 06:39