Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Tworzenie miniaturek do lightbox'a
Forum PHP.pl > Forum > Przedszkole
adrianozo
Witam,
Mam pytanie. Jak stworzyć podczas dodawania pliku na serwer miniaturkę pomniejszoną do danej wielkości?
MateuszS
ja uzywam tej funkcji
  1. function create_thumbnail($source_file, $destination_file, $max_dimension)
  2. {
  3. list($img_width,$img_height) = getimagesize($source_file);
  4. $aspect_ratio = $img_width / $img_height;
  5.  
  6. if ( ($img_width > $max_dimension) || ($img_height > $max_dimension) )
  7. {
  8. if ( $img_width > $img_height )
  9. {
  10. $new_width = $max_dimension;
  11. $new_height = $new_width / $aspect_ratio;
  12. }
  13. elseif ( $img_width < $img_height )
  14. {
  15. $new_height = $max_dimension;
  16. $new_width = $new_height * $aspect_ratio;
  17. }
  18. elseif ( $img_width == $img_height )
  19. {
  20. $new_width = $max_dimension;
  21. $new_height = $max_dimension;
  22. }
  23. else { echo "Error reading image size."; return FALSE; }
  24. }
  25. else { $new_width = $img_width; $new_height = $img_height; }
  26.  
  27.  
  28. $new_width = intval($new_width);
  29. $new_height = intval($new_height);
  30.  
  31. $thumbnail = imagecreatetruecolor($new_width,$new_height);
  32.  
  33.  
  34. if ( strpos($source_file,".gif") ) { $img_source = imagecreatefromgif($source_file); }
  35. if ( (strpos($source_file,".jpg")) || (strpos($source_file,".jpeg") || (strpos($source_file,".JPG")) || (strpos($source_file,".JPEG"))) )
  36. { $img_source = imagecreatefromjpeg($source_file); }
  37. if ( strpos($source_file,".bmp") ) { $img_source = imagecreatefromwbmp($source_file); }
  38. if ( strpos($source_file,".png") ) { $img_source = imagecreatefrompng($source_file); }
  39.  
  40.  
  41. imagecopyresampled($thumbnail, $img_source, 0, 0, 0, 0, $new_width, $new_height, $img_width, $img_height);
  42. imagejpeg( $thumbnail, $destination_file, 100 );
  43.  
  44.  
  45. imagedestroy($img_source);
  46. imagedestroy($thumbnail);
  47. }
adrianozo
Dodać ją do pliku dodajartykul?
MateuszS
no dodaj ja do jakiegos pliku z funkcjami, potem go includuj i wywolaj funkcje
adrianozo
dodajartykul.php

  1. <?php
  2. include('include/db.php');
  3. $info = addslashes($_POST['info']);
  4. $kategoria = addslashes($_POST['kategoria']);
  5. $tytul = addslashes($_POST['tytul']);
  6. $cena = addslashes($_POST['cena']);
  7. $plik_nazwa = addslashes($_POST['plik']);
  8. $zdjecie_nazwa = addslashes($_POST['zdjecie']);
  9. $data = date('Y-m-d-G:i:s');
  10. include('include/dane.php');
  11. if($_POST['info']==NULL)
  12. {
  13. echo '<div style="text-align:center;"><form action="index.php?page=dodajartykul" enctype="multipart/form-data" method="post">Tytu&#x142;<br />
  14. <input type="hidden" name="MAX_FILE_SIZE" value="2097152">
  15. <input type="text" name="tytul" value="Tytu&#x142;" size="26" />
  16. <br />Tre&#x15B;&#x107;<br />
  17. <textarea name="info" cols="50" rows="10">Tre&#x15B;&#x107;</textarea>
  18. <br />Kategoria<br />
  19. <input type="text" name="kategoria" value="Kategoria" size="26" />
  20. <br />Cena<br />
  21. <input type="text" name="cena" value="Cena" size="26" />
  22. <br />Miniaturka<br />
  23. <input type="file" name="zdjecie" />
  24. <br />Plik<br />
  25. <input type="file" name="plik" />
  26. <br />
  27. <input type="submit" value="Dodaj" />
  28. <input type="reset" value="Wyczy&#x15B;&#x107;" />
  29. </form><br />
  30. <a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  31. }
  32. else
  33. {
  34. $plik_tmp = $_FILES['plik']['tmp_name'];
  35. $plik_nazwa = $_FILES['plik']['name'];
  36. $plik_rozmiar = $_FILES['plik']['size'];
  37. $plik_type = $_FILES['plik']['type'];
  38. $zdjecie_tmp = $_FILES['zdjecie']['tmp_name'];
  39. $zdjecie_nazwa = $_FILES['zdjecie']['name'];
  40. $zdjecie_rozmiar = $_FILES['zdjecie']['size'];
  41. $zdjecie_type = $_FILES['zdjecie']['type'];
  42. $ext1 = substr( $plik_nazwa, strrpos($plik_nazwa, '.' ) +1 );
  43. $ext2 = substr( $zdjecie_nazwa, strrpos($zdjecie_nazwa, '.' ) +1 );
  44. if(is_uploaded_file($plik_tmp))
  45. {
  46. if (($ext1 == 'zip') || ($ext1 == 'ZIP') || ($ext1 == 'rar') || ($ext1 == 'RAR') || ($ext1 == 'txt') || ($ext1 == 'TXT'))
  47. {
  48. move_uploaded_file($plik_tmp, "upload/$plik_nazwa");
  49. if(is_uploaded_file($zdjecie_tmp))
  50. {
  51. if (($ext2 == 'jpg') || ($ext2 == 'JPG') || ($ext2 == 'jpeg') || ($ext2 == 'JPEG') || ($ext2 == 'png') || ($ext2 == 'PNG') || ($ext2 == 'gif') || ($ext2 == 'GIF'))
  52. {
  53. move_uploaded_file($zdjecie_tmp, "zdjecie/$zdjecie_nazwa");
  54. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  55. <strong>$plik_rozmiar bajt&#xF3;w</strong> zosta&#x142; przes&#x142;any na serwer!<br /><br />";
  56. echo "Zdjęcie: <strong>$zdjecie_nazwa</strong> o rozmiarze
  57. <strong>$zdjecie_rozmiar bajt&#xF3;w</strong> zosta&#x142;o przes&#x142;ane na serwer!";
  58. addslashes($zapytanie = "INSERT INTO `artykuly` (`info`, `kategoria`, `tytul`, `cena`, `plik`, `zdjecie`, `miniaturka`, `data`) VALUES ('".$info."', '".$kategoria."', '".$tytul."', '".$cena."', 'upload/".$plik_nazwa."', 'zdjecie/".$zdjecie_nazwa."', 'zdjecie/miniaturka/".$zdjecie_nazwa."', '".$data."')");
  59. $idzapytania = mysql_query($zapytanie);
  60. }
  61. }
  62. }
  63. }
  64. else
  65. {
  66. echo '<div style="text-align:center;">Zły format pliku!<br /><a style="text-decoration: none;" href="?page=dodajartykul">Wr&#xF3;&#x107;</a></div>';
  67. }
  68. if($idzapytania)
  69. {
  70. echo '<div style="text-align:center;">Dodano artyku&#x142;<br /><br /><a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  71. }
  72. }
  73. mysql_close($connect);
  74. ?>

W którym miejscu go includować?
MateuszS
stary to są podstawy... includujesz sobie na początku... zaraz bedzie extra pytanie jak to uzyc
adrianozo
Dokładnie tak, ponieważ nigdy nie używałem funkcji smile.gif
MateuszS
Kursów też chyba nigdy nie używałeś, Googli ani manuala.
adrianozo
Używałem kursów na internecie, przeczytałem kilka książek, a jeśli chodzi o google to nigdy nie wiem pod jakim hasłem szukać

Zrobiłem to tak:

  1. <?php
  2. include('include/db.php');
  3. include('functions/miniaturka.php');
  4. $info = addslashes($_POST['info']);
  5. $kategoria = addslashes($_POST['kategoria']);
  6. $tytul = addslashes($_POST['tytul']);
  7. $cena = addslashes($_POST['cena']);
  8. $plik_nazwa = addslashes($_POST['plik']);
  9. $zdjecie_nazwa = addslashes($_POST['zdjecie']);
  10. $data = date('Y-m-d-G:i:s');
  11. include('include/dane.php');
  12. if($_POST['info']==NULL)
  13. {
  14. echo '<div style="text-align:center;"><form action="index.php?page=dodajartykul" enctype="multipart/form-data" method="post">Tytu&#x142;<br />
  15. <input type="hidden" name="MAX_FILE_SIZE" value="2097152">
  16. <input type="text" name="tytul" value="Tytu&#x142;" size="26" />
  17. <br />Tre&#x15B;&#x107;<br />
  18. <textarea name="info" cols="50" rows="10">Tre&#x15B;&#x107;</textarea>
  19. <br />Kategoria<br />
  20. <input type="text" name="kategoria" value="Kategoria" size="26" />
  21. <br />Cena<br />
  22. <input type="text" name="cena" value="Cena" size="26" />
  23. <br />Miniaturka<br />
  24. <input type="file" name="zdjecie" />
  25. <br />Plik<br />
  26. <input type="file" name="plik" />
  27. <br />
  28. <input type="submit" value="Dodaj" />
  29. <input type="reset" value="Wyczy&#x15B;&#x107;" />
  30. </form><br />
  31. <a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  32. }
  33. else
  34. {
  35. $plik_tmp = $_FILES['plik']['tmp_name'];
  36. $plik_nazwa = $_FILES['plik']['name'];
  37. $plik_rozmiar = $_FILES['plik']['size'];
  38. $plik_type = $_FILES['plik']['type'];
  39. $zdjecie_tmp = $_FILES['zdjecie']['tmp_name'];
  40. $zdjecie_nazwa = $_FILES['zdjecie']['name'];
  41. $zdjecie_rozmiar = $_FILES['zdjecie']['size'];
  42. $zdjecie_type = $_FILES['zdjecie']['type'];
  43. $ext1 = substr( $plik_nazwa, strrpos($plik_nazwa, '.' ) +1 );
  44. $ext2 = substr( $zdjecie_nazwa, strrpos($zdjecie_nazwa, '.' ) +1 );
  45. create_thumbnail($source_file, $destination_file, $max_dimension);
  46. if(is_uploaded_file($plik_tmp))
  47. {
  48. if (($ext1 == 'zip') || ($ext1 == 'ZIP') || ($ext1 == 'rar') || ($ext1 == 'RAR') || ($ext1 == 'txt') || ($ext1 == 'TXT'))
  49. {
  50. move_uploaded_file($plik_tmp, "upload/$plik_nazwa");
  51. if(is_uploaded_file($zdjecie_tmp))
  52. {
  53. if (($ext2 == 'jpg') || ($ext2 == 'JPG') || ($ext2 == 'jpeg') || ($ext2 == 'JPEG') || ($ext2 == 'png') || ($ext2 == 'PNG') || ($ext2 == 'gif') || ($ext2 == 'GIF'))
  54. {
  55. move_uploaded_file($zdjecie_tmp, "zdjecie/$zdjecie_nazwa");
  56. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  57. <strong>$plik_rozmiar bajt&#xF3;w</strong> zosta&#x142; przes&#x142;any na serwer!<br /><br />";
  58. echo "Zdjęcie: <strong>$zdjecie_nazwa</strong> o rozmiarze
  59. <strong>$zdjecie_rozmiar bajt&#xF3;w</strong> zosta&#x142;o przes&#x142;ane na serwer!";
  60. addslashes($zapytanie = "INSERT INTO `artykuly` (`info`, `kategoria`, `tytul`, `cena`, `plik`, `zdjecie`, `miniaturka`, `data`) VALUES ('".$info."', '".$kategoria."', '".$tytul."', '".$cena."', 'upload/".$plik_nazwa."', 'zdjecie/".$zdjecie_nazwa."', 'zdjecie/miniaturka/".$zdjecie_nazwa."', '".$data."')");
  61. $idzapytania = mysql_query($zapytanie);
  62. }
  63. }
  64. }
  65. }
  66. else
  67. {
  68. echo '<div style="text-align:center;">Zły format pliku!<br /><a style="text-decoration: none;" href="?page=dodajartykul">Wr&#xF3;&#x107;</a></div>';
  69. }
  70. if($idzapytania)
  71. {
  72. echo '<div style="text-align:center;">Dodano artyku&#x142;<br /><br /><a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  73. }
  74. }
  75. mysql_close($connect);
  76. ?>
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.