Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Skrypt uploadu zdjęć + jak dorobić miniaturki?
Forum PHP.pl > Forum > Przedszkole
DonJeday
Siema,

Mój skrypt do uploadu zdjęć wygląda następująco:

  1. <?php
  2.  
  3. $uploaddir = "photos/";
  4. $namefoto = ''.$user_info["id"].'.jpg';
  5. $uploadfile = $uploaddir . $namefoto;
  6.  
  7. $img = imagecreatefromjpeg($_FILES['photo']['tmp_name']);
  8. $width  = imagesx($img);
  9. $height = imagesy($img);
  10. $width_mini = "188";
  11. $height_mini = "250";
  12. $img_mini = imagecreatetruecolor($width_mini, $height_mini);
  13. imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $width_mini , $height_mini, $width  , $height);
  14. imagejpeg($img_mini, $uploadfile, 80);
  15. imagedestroy($img);
  16. imagedestroy($img_mini);
  17.  
  18. move_uploaded_file($img_mini, $uploadfile);
  19.  
  20.  
  21.  
  22. ?>




Powiedzcie mi jakie linijki dopisać, żeby zarazem i uploadowało się zdjęcie zmniejszone do takiego rozmiaru tzn 188 x 250 do katalogu photos i do rozmiaru 75 x 99 do katalogu thumbnails
Wykrywacz
Masz tu skrypt robi on 3 różnej wielkości obrazki z tego otrzymanego, wystarczy że sobie go trochę przerobisz (skrypt jako taki powinien działać)

  1. <?php
  2. if(isset($_FILES['plik']))
  3. {
  4.     $uploadfile = $_FILES["plik"]["tmp_name"];
  5.     $name = $_FILES["plik"]["name"];
  6.     move_uploaded_file($uploadfile,$_SERVER['DOCUMENT_ROOT'].'/cms/'.$name);
  7.     $file = ($_SERVER['DOCUMENT_ROOT'].'/cms/'.$name);
  8.     $org = imagecreatefromjpeg($file);
  9.     $size_org = getimagesize($file);
  10.     $xs_new = 100;
  11.     if ($size_org[0] >= $size_org[1])
  12.     {
  13.        $y_new = $xs_new * $size_org[1] / $size_org[0];
  14.        $x_new = $xs_new;
  15.     }
  16.     else
  17.     {
  18.        $y_new = $xs_new;
  19.        $x_new = $xs_new * $size_org[0] / $size_org[1]  ;
  20.     }
  21.     $new = imagecreatetruecolor($x_new,$y_new);
  22.     $dir = $_SERVER['DOCUMENT_ROOT'].'/cms/1_'.$name;
  23.     $upd_s = mysql_query("update texty set foto_s = '/cms/1_$name' where id_produktu = $rid");
  24.     imagecopyresampled($new,$org,0,0,0,0,$x_new,$y_new,$size_org[0],$size_org[1]);
  25.     imagejpeg($new,$dir,80);
  26.     imagedestroy($new);
  27.    
  28.    
  29.       $xml_new = 300;
  30.     if ($size_org[0] >= $size_org[1])
  31.     {
  32.        $ym_new = $xml_new * $size_org[1] / $size_org[0];
  33.        $xm_new = $xml_new;
  34.     }
  35.     else
  36.     {
  37.        $ym_new = $xml_new;
  38.        $xm_new = $xml_new * $size_org[0] / $size_org[1]  ;
  39.     }
  40.     $newm = imagecreatetruecolor($xm_new,$ym_new);
  41.     $dir2 = $_SERVER['DOCUMENT_ROOT'].'/cms/2_'.$name;
  42.     $upd_m = mysql_query(" update texty set foto_m = '/cms/2_$name' where id_produktu = $rid");
  43.     imagecopyresampled($newm,$org,0,0,0,0,$xm_new,$ym_new,$size_org[0],$size_org[1]);
  44.     imagejpeg($newm,$dir2,80);
  45.     imagedestroy($newm);
  46.    
  47.    
  48.      $xl_new = 500;
  49.     if ($size_org[0] >= $size_org[1])
  50.     {
  51.        $ymb_new = $xl_new * $size_org[1] / $size_org[0];
  52.        $xmb_new = $xl_new;
  53.     }
  54.     else
  55.     {
  56.        $ymb_new = $xl_new;
  57.        $xmb_new = $xl_new * $size_org[0] / $size_org[1]  ;
  58.     }
  59.     $newml = imagecreatetruecolor($xmb_new,$ymb_new);
  60.     $dir3 = $_SERVER['DOCUMENT_ROOT'].'/cms/3_'.$name;
  61.      $upd_l = mysql_query(" update texty set foto_l = '/cms/3_$name' where id_produktu = $rid");
  62.     imagecopyresampled($newml,$org,0,0,0,0,$xmb_new,$ymb_new,$size_org[0],$size_org[1]);
  63.     imagejpeg($newml,$dir3,80);
  64.     imagedestroy($newml);
  65.     imagedestroy($org);
  66. }
  67. ?>
DonJeday
Cytat(Wykrywacz @ 25.11.2008, 15:28:44 ) *
Masz tu skrypt robi on 3 różnej wielkości obrazki z tego otrzymanego, wystarczy że sobie go trochę przerobisz (skrypt jako taki powinien działać)




Strasznie zawiły... Ja to rozwiązałem prościej winksmiley.jpg


  1. <?php
  2.  
  3. $uploaddir = "photos/"; //Katalog zdjęć profilowych
  4. $thumbnails_uploaddir = "thumbnails/"; //Katalog miniaturek
  5.  
  6. $namefoto = ''.$user_info["id"].'.jpg';
  7. $uploadfile = $uploaddir . $namefoto;
  8. $thumbnails_uploadfile = $thumbnails_uploaddir . $namefoto;
  9.  
  10. move_uploaded_file($img_mini, $uploadfile);
  11.  
  12. //Zdjęcie główne
  13. $img = imagecreatefromjpeg($_FILES['photo']['tmp_name']);
  14. $width  = imagesx($img);
  15. $height = imagesy($img);
  16. $width_mini = "188";
  17. $height_mini = "250";
  18. $img_mini = imagecreatetruecolor($width_mini, $height_mini);
  19. imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $width_mini , $height_mini, $width  , $height);
  20. imagejpeg($img_mini, $uploadfile, 80);
  21. imagedestroy($img);
  22. imagedestroy($img_mini);
  23.  
  24. //Miniaturki
  25. $img_thumb = imagecreatefromjpeg($_FILES['photo']['tmp_name']);
  26. $width_thumb  = imagesx($img_thumb);
  27. $height_thumb = imagesy($img_thumb);
  28. $width_mini_thumb = "75";
  29. $height_mini_thumb = "99";
  30. $img_mini_thumb = imagecreatetruecolor($width_mini_thumb, $height_mini_thumb);
  31. imagecopyresampled($img_mini_thumb, $img_thumb, 0, 0, 0, 0, $width_mini_thumb, $height_mini_thumb, $width_thumb , $height_thumb);
  32. imagejpeg($img_mini_thumb, $thumbnails_uploadfile, 80);
  33. imagedestroy($img_thumb);
  34. imagedestroy($img_mini_thumb);
  35.  
  36.  
  37.  
  38. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.