Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]miniaturki
Forum PHP.pl > Forum > Przedszkole
Alessio
Jak wrzuce jakąś grafike jpeg to zapisuje ok, ale powinno robić również miniaturkę do niej, a to nie działa, próbowałem z imagejpeg() i wtedy to działa, jednak nie wiem dlaczego pokazuje się na stronie ścieżka do katalogu ze skryptem czyli http://localhost/skrypt/upload, drugi sposób próbowałem z podwójnym move_upload_file, ale też nie działa, proste jednak nie wiem jak to rozwiązać, aha i jeszcz nie wiem czemu jak używalem header jpeg i imagejpeg to np po tych funkcjach echo "" nie działało i strona była tak jakby grafiką, jak to zmienić? czy da się zrobić z tą funkcją move_uploaded_file coś? żeby mi przesunęła zmniejszoną grafikę.
  1. <html>
  2. <head>
  3. <script language=javascript>
  4. function Obrazki(nazwa){
  5.   oknoObrazki=window.open(nazwa, 'oknoObr', 'width=640,height=480')
  6.   oknoObrazki.focus()
  7. }
  8. </script>
  9. </head>
  10. <body>
  11. <a href="java script:Obrazki('c.jpg')">Nazwa Obrazka</a>
  12. <?php
  13. if (!isset($_POST['submit'])) {
  14. echo '<form enctype="multipart/form-data" action="upload.php" method="POST">
  15. <input type="hidden" name="MAX_FILE_SIZE" value="5000000000000000" />
  16. Podaj ścieżkę grafiki: <input name="plik" type="file" />
  17. <input type="submit" value="Wyslij plik" name="submit" /><br />
  18. Obsługiwane formaty graficzne: .jpeg, .gif, .tiff, .png<br />
  19. <input type="radio" name="rozmiar" value="640x480" />Rozmiar 640x480 <br />
  20. <input type="radio" name="rozmiar" value="800x600" />Rozmiar 800x600<br />
  21. </form>
  22. </div>';
  23. }   ?>
  24. <?php
  25. $plik_tmp = $_FILES['plik']['tmp_name'];
  26. $plik_nazwa = $_FILES['plik']['name'];
  27. $plik_rozmiar = $_FILES['plik']['size'];
  28. $dokladny_typ = $_FILES['plik']['type'];
  29. echo $plik_nazwa;
  30. $rozmiar = $_POST['rozmiar'];
  31. $format_pliku = explode(".",$plik_nazwa);
  32. //echo $format_pliku[1].'<br />';
  33. //if ($format_pliku[1] == "txt" || $format_pliku == "jpg") {
  34. //if (end($format_pliku) == "txt" || end($format_pliku) == "jpg")
  35.  
  36. if ($dokladny_typ == "image/jpeg" || $dokladny_typ == "image/gif" || $dokladny_typ == "image/tiff" || $dokladny_typ == "image/png" ) {
  37. if(is_uploaded_file($plik_tmp)) {
  38. echo $plik_nazwa;
  39. list($width,$height) = getimagesize($plik_tmp);
  40. if(!is_dir($plik_nazwa)) {
  41. mkdir("$plik_nazwa");
  42. }
  43.     move_uploaded_file($plik_tmp, "c:/wamp/www/upload/$plik_nazwa/$plik_nazwa");
  44.  
  45.  
  46.  
  47.  
  48.  echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  49.   <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!<br />";
  50.  
  51.  
  52.   if(isset($_POST['rozmiar'])) {
  53.   $rozmiar = $_POST['rozmiar'];
  54.  
  55.   echo '<br />';
  56.  
  57.    $podzial = explode("x", $rozmiar);
  58.    $new_width = $podzial[0];
  59.    $new_height = $podzial[1];
  60.  $image_p = imagecreatetruecolor($new_width, $new_height);
  61.  $image = imagecreatefromjpeg("$plik_nazwa/$plik_nazwa");
  62.  imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
  63. // imagejpeg($image_p, NULL, 100);
  64.  move_uploaded_file($image_p, "$plik_nazwa/$plik_nazwa");
  65. //unlink($_FILES['file']['name']);
  66. echo "aaa";
  67.   }
  68.   else {
  69.       echo 'Nie zaznazczyłeś rozmiaru!';
  70.       }
  71.  
  72.   if ($_FILES['plik']['error'] > 0)
  73.   {
  74.       switch($_FILES['plik']['error'])
  75.       {
  76.           case 1: echo 'Rozmiar pliku jset większy niż możliwe to w konfiguracji!'; break;
  77.           case 2: echo 'Rozmiar pliku jest zbyt duży!'; break;
  78.           case 3: echo 'Plik wysłany tylko częściowo!'; break;
  79.           case 4: echo 'Nie wysłano żadnego pliku!'; break;
  80.       }
  81.   }
  82.                               }
  83.   else {
  84.   echo 'niewlasciwy format pliku';
  85.   }
  86. }
  87. ?>
  88. </body>
  89. </html>
Lejto
create_min.php
  1. <?
  2. $obrazek_minn = "$z";
  3. $max_width = '120';
  4. $max_height = '95';
  5. $size = @getimagesize($file);
  6. $width = $size[0];    
  7. $height = $size[1];
  8. $x_ratio = $max_width / $width;
  9. $y_ratio = $max_height / $height;
  10. if(($width <= $max_width) && ($height <= $max_height))
  11. {
  12.   $tn_width = $width;
  13.   $tn_height = $height;
  14. }
  15. else if(($x_ratio * $height) < $max_height)
  16. {
  17.   $tn_height = ceil($x_ratio * $height);
  18.   $tn_width = $max_width;
  19. }
  20. else
  21. {
  22.   $tn_width = ceil($y_ratio * $width);
  23.   $tn_height = $max_height;
  24. }
  25.  
  26. if($typ_pliku == 'image/png')
  27.    {
  28.        $src = imagecreatefrompng($file);
  29.        $dst = imagecreatetruecolor($tn_width, $tn_height);
  30.        imagecopyresampled($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height, $width, $height);
  31.        imagepng($dst, "miniatury/".$obrazek_minn);
  32.    }
  33.    else
  34.    {
  35.         $func_plus_prefix_1 = "ImageCreateFrom".$pref_gd;
  36.        $func_plus_prefix_2 = "image".$pref_gd;
  37.        $src = imagecreatefromjpeg($file);
  38.  
  39.        $dst = imagecreatetruecolor($tn_width, $tn_height);
  40.        imagecopyresampled($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height, $width, $height);
  41.        imagejpeg($dst, "miniatury/".$obrazek_minn, 100);
  42.    }
  43. if($typ_pliku == 'image/bmp')
  44.    {
  45.         $src =  imagecreatefromgif($file);
  46.        $dst = imagecreatetruecolor($tn_width, $tn_height);
  47.        imagecopyresampled($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height, $width, $height);
  48.        imagegif($dst, "miniatury/".$obrazek_minn);
  49.    }    
  50.    
  51. ?>

i
  1. <?php
  2. if(file_exists("./obrazy/".$nazwa_zmieniona))
  3.                         {
  4.                               include("create_min.php");
  5.                         }
  6. ?>
Alessio
dzięki, jednak nie bardzo mi to pomogło bo dalej mi to nie działa,próbowałem to dostosować ale cały czas mam problem z tymi funkcjami gd2 i cały czas coś nie pasuje i wszystko sie psuje.
mógłby mi ktoś poprawić ten kod:
  1. <?php
  2.  
  3. move_uploaded_file($_FILES['pliczek']['tmp_name'],"pliki/".$_FILES['pliczek']['name']);
  4. $plik_tmp = $_FILES['plik']['tmp_name'];
  5. $pliczek = $_FILES['pliczek']['name'];
  6. list($width,$height) = getimagesize($plik_tmp);
  7.  $new_width = 120;
  8.  $new_height = 80;
  9.  $miniaturka = imagecreatetruecolor($new_width, $new_height);
  10.  $miniaturka_sciezka_z = imagecreatefromjpeg("pliki/$pliczek");
  11.  imagecopyresampled($miniaturka, $miniaturka_sciezka_z, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
  12.  imagejpeg($miniaturka, "pliki/mini_$pliczek", 100);
  13. //dalej to już nie ważne, chodzi o kod dotąd.
  14. $connection = mysql_connect("xx","xx","xx");
  15. $db = mysql_select_db("upload_baza", $connection);
  16. $name = 'pliki/'.$_FILES['pliczek']['name'];
  17. $sql="INSERT INTO obrazki (sciezka)
  18. VALUES
  19. ('$name')";
  20.  
  21. if (!mysql_query($sql))
  22.  {
  23.  die('Błąd: ' . mysql_error());
  24.  }
  25. echo "Plik został zapisany!<br>";
  26.  
  27. ?>

Wszystko jest ok, zapisuje do dobrego folderu z dobrym obrazem, tylko obrazek jest cały czarny.
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.