Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Problem z miniaturkami
Forum PHP.pl > Forum > Przedszkole
bula17
Witam w oparciu o tutorial opisujący tworzenie miniaturek, postanowiłem napisać sobie taki o to skrypt:

  1. <?php
  2.  
  3.  
  4. if(empty($_POST)) {
  5. echo '<form method="post" action="thumbs.php" enctype="multipart/form-data">';
  6. echo '<table border="0" align="center"><input type="hidden" name="MAX_FILE_SIZE" value="100000000">';
  7. echo '<tr><td><input type="file" name="plik" size="40"><br>';
  8.  
  9. echo '<tr><td><input type="submit" name="submit" value="Upload"></table>';
  10.  
  11. }
  12.  
  13. else {
  14. $plik_tmp = $_FILES['plik']['tmp_name'];
  15. $plik_nazwa = $_FILES['plik']['name']; 
  16. $plik_rozmiar = $_FILES['plik']['size'];
  17. $katalog = "/home/user/katalog";
  18. $data = date('d.m.Y, H:i');
  19.  
  20.  
  21.  
  22.  
  23.  $img_path = $_FILES['plik']['tmp_name'];
  24.  
  25.  
  26.  $thumb_path = substr($img_path,0,strrpos($img_path,'.')).'.th.jpg';
  27.  
  28.  
  29.  $max_width=250;
  30.  $max_height=250;
  31.  
  32.  
  33.  if(!file_exists($img_path))die('<p>Plik obrazu nie istnieje</p>');
  34.  
  35.  
  36.  $img_attr = getimagesize($img_path);
  37.  
  38.  
  39.  if($img_attr[0]>$img_attr[1]){
  40.  $scale = $img_attr[0] / $max_width;
  41.  }else{
  42.  $scale = $img_attr[1] / $max_height;
  43.  }
  44.  
  45.  
  46.  $w = floor($img_attr[0]/$scale);
  47.  $h = floor($img_attr[1]/$scale);
  48.  $thumb = imagecreatetruecolor($w,$h);
  49.  
  50.  
  51.  imagecopyresampled($thumb, imagecreatefromjpeg($img_path), 0, 0, 0, 0, $w, $h, $img_attr[0], $img_attr[1]);
  52.  
  53.  
  54.  imagejpeg($thumb,$thumb_path,85);
  55.  
  56.  
  57. if(is_uploaded_file($plik_tmp)) {
  58.  move_uploaded_file($plik_tmp, "$katalog/$plik_nazwa");
  59.  move_uploaded_file($plik_tmp, "$katalog/$thumb_path");
  60. echo ">Plik został wgrany!";
  61.  
  62.  
  63.  
  64. }
  65.  
  66.  
  67.  
  68. }
  69. ?>

Skrypt ma uploadować plik na serwer, tworzyć miniaturkę w "locie" i również ją uploadować.
Wszystko działa, poza jedną rzeczą. Skrypt zapisuje miniaturkę jako .th.jpg zamiast nazwapliku.th.jpg
Czy mozna to jakos zmienić, zeby działało to poprawnie? Proszę o pomoc.
Daimos
  1. <?php
  2.  
  3.  
  4. if(empty($_POST)) {
  5. echo '<form method="post" action="thumbs.php" enctype="multipart/form-data">';
  6. echo '<table border="0" align="center"><input type="hidden" name="MAX_FILE_SIZE" value="100000000">';
  7. echo '<tr><td><input type="file" name="plik" size="40"><br>';
  8.  
  9. echo '<tr><td><input type="submit" name="submit" value="Upload"></table>';
  10.  
  11. }
  12.  
  13. else {
  14. $plik_tmp = $_FILES['plik']['tmp_name'];
  15. $plik_nazwa = $_FILES['plik']['name']; 
  16. $plik_rozmiar = $_FILES['plik']['size'];
  17. $plik_rozszerzenie = end(explode('.',$plik_nazwa));
  18. $plik_bezrozszerzenia = str_replace($plik_rozszerzenie, '', $plik_nazwa);
  19. $katalog = "/home/user/katalog";
  20. $data = date('d.m.Y, H:i');
  21.  
  22.  
  23.  
  24.  
  25.  $img_path = $_FILES['plik']['tmp_name'];
  26.  
  27.  
  28.  $thumb_path = $plik_bezrozszerzenia.'.th.'.$plik_rozszerzenie;
  29.  
  30.  
  31.  
  32.  $max_width=250;
  33.  $max_height=250;
  34.  
  35.  
  36.  if(!file_exists($img_path))die('<p>Plik obrazu nie istnieje</p>');
  37.  
  38.  
  39.  $img_attr = getimagesize($img_path);
  40.  
  41.  
  42.  if($img_attr[0]>$img_attr[1]){
  43.  $scale = $img_attr[0] / $max_width;
  44.  }else{
  45.  $scale = $img_attr[1] / $max_height;
  46.  }
  47.  
  48.  
  49.  $w = floor($img_attr[0]/$scale);
  50.  $h = floor($img_attr[1]/$scale);
  51.  $thumb = imagecreatetruecolor($w,$h);
  52.  
  53.  
  54.  imagecopyresampled($thumb, imagecreatefromjpeg($img_path), 0, 0, 0, 0, $w, $h, $img_attr[0], $img_attr[1]);
  55.  
  56.  
  57.  imagejpeg($thumb,$thumb_path,85);
  58.  
  59.  
  60. if(is_uploaded_file($plik_tmp)) {
  61.  move_uploaded_file($plik_tmp, "$katalog/$plik_nazwa");
  62.  move_uploaded_file($plik_tmp, "$katalog/$thumb_path");
  63. echo ">Plik został wgrany!";
  64.  
  65.  
  66.  
  67. }
  68.  
  69.  
  70.  
  71. }
  72. ?>
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.