Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][HTML]Tworzenie miniaturki
-Gość-
post
Post #1





Goście







Witam,
chcialbym sie dowiedziec jak stworzyc miniaturke fotki. Mam skrypt ktory ulpoaduje fotki na serwer, ale jak zrobic zeby podczas uploadu tworzyl automatycznie miniaturke o nazwa : m_nazwapliku.jpg
Prosze o pomoc
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 22)
Piniek
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 463
Pomógł: 49
Dołączył: 27.12.2007
Skąd: Warszawa

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


zainteresuj sie GD w php winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
conix
post
Post #3





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 8.02.2008

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


Nic z tego nie kapuje haha.gif

Edit:
Gosc to ja ; D


--------------------
Jeśli pomogłem kliknij na Pomógł
Jeśli nie pomogłem kliknij na Pomógł
Go to the top of the page
+Quote Post
batman
post
Post #4





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Pisane z palca, więc mógł wkraść się błąd.

  1. <?php
  2. $img = imagecreatefromjpeg('sciezka_do_obrazka'); // utworzenie obrazka na podstawie juz istniejacego
  3. $new_img = imagecreatetruecolor($new_width, $new_height); // utwozenie nowego obrazka
  4. imagecopyresampled($new_img, $img, 0, 0, 0, 0, $new_width, $new_height, $old_width, $old_height); // zmiana rozmiaru zaladowanego obrazka
  5. imagejpeg($new_img, 'sciezka_do_miniaturki'); // zapisanie miniaturki
  6. imagedestroy($new_img); // usuwanie smieci
  7.  
  8. /*
  9. $new_width, $new_height - szerokosc i iwysokosc miniaturki
  10. $old_width, $old_height - szerokosc i wysokosc oryginalnego obrazka
  11. */
  12. ?>


Użycie funkcji gwarantuje, że miniaturka będzie dobrej jakości.

Informacje na temat użytych funkcji znajdziesz w manualu. Pamiętaj, że GD jest bardzo pamięciożerne.

edit
Jeśli chcesz zrobić miniaturkę z gifa, użyj odpowiednich funkcji (znajdziesz je w manualu).

Ten post edytował batman 15.03.2008, 17:20:03


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
conix
post
Post #5





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 8.02.2008

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


Próbuje polaczyc to z tym:
  1. <?
  2. $uploaded = "uploady/". $_FILES['plik']['name'];
  3. if (is_uploaded_file($_FILES['plik']['tmp_name'])) {
  4. if ($_FILES['plik']['size'] > 1024*1024*1024) {
  5. echo 'Plik jest za duży';
  6. } else {
  7. move_uploaded_file($_FILES['plik']['tmp_name'],$uploaded);
  8. echo "Operacja przebiegła pomyślnie";
  9. }
  10. } else {
  11. echo 'Błąd przy przesyłaniu danych!';
  12. }
  13. ?>


Ale nie idzie :/


--------------------
Jeśli pomogłem kliknij na Pomógł
Jeśli nie pomogłem kliknij na Pomógł
Go to the top of the page
+Quote Post
PawelC
post
Post #6





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


  1. <?
  2. $uploaded = "uploady/". $_FILES['plik']['name'];
  3. if (is_uploaded_file($_FILES['plik']['tmp_name'])) {
  4. if ($_FILES['plik']['size'] > 1024*1024*1024) {
  5. echo 'Plik jest za duży';
  6. } else {
  7. move_uploaded_file($_FILES['plik']['tmp_name'],$uploaded);
  8.  
  9. $img = imagecreatefromjpeg('sciezka_do_obrazka'); // utworzenie obrazka na podstawie juz istniejacego
  10. $new_img = imagecreatetruecolor($new_width, $new_height); // utwozenie nowego obrazka
  11. imagecopyresampled($new_img, $img, 0, 0, 0, 0, $new_width, $new_height, $old_width, $old_height); // zmiana rozmiaru zaladowanego obrazka
  12. imagejpeg($new_img, 'sciezka_do_miniaturki'); // zapisanie miniaturki
  13. imagedestroy($new_img); // usuwanie smieci
  14. echo "Operacja przebiegła pomyślnie";
  15.  
  16.  
  17. }
  18. } else {
  19. echo 'Błąd przy przesyłaniu danych!';
  20. }
  21. ?>
Go to the top of the page
+Quote Post
conix
post
Post #7





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 8.02.2008

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


Zabawny jestes, ale tyle tez potrafie.
Co mam wpisac w
'sciezka_do_obrazka
skoro ma brac aktualnie uploadowany obrazek?


--------------------
Jeśli pomogłem kliknij na Pomógł
Jeśli nie pomogłem kliknij na Pomógł
Go to the top of the page
+Quote Post
batman
post
Post #8





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Wstaw kod, który napisałem między wiersz 7 i 8. Zamiast 'sciezka_do_obrazka' użyj zmiennej $uploaded, a zamiast 'sciezka_do_miniaturki' użyj zmiennej $ulopady_thumb, która będzie miała postać:
  1. <?php
  2. $uploaded_thumb = "uploady/thumb_". $_FILES['plik']['name'];
  3. ?>


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
conix
post
Post #9





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 8.02.2008

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


Dupa, nie umie tego zrobic ;/


--------------------
Jeśli pomogłem kliknij na Pomógł
Jeśli nie pomogłem kliknij na Pomógł
Go to the top of the page
+Quote Post
Piniek
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 463
Pomógł: 49
Dołączył: 27.12.2007
Skąd: Warszawa

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


to moze bys pokazal co do tej pory napislaes i gdzie masz blad albo problem bo jak narazie to "chyba" czekasz na gotowca

Ten post edytował Piniek 15.03.2008, 17:50:47


--------------------
Go to the top of the page
+Quote Post
batman
post
Post #11





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Pojawiają jakieś błędy?
Masz włączone rozszerzenie GD?
Masz prawa do zapisu do katalogu, gdzie ładowane są zdjęcia i miniaturki?


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
conix
post
Post #12





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 8.02.2008

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


Po co mam pokazywać jak nie dziala :/
Po 2 na tym forum jest tak ze po kilkunastu minutach zawsze sie otrzymuje gotowca
PS. Niewiem jak dokladnie ma to wygladac

Ten post edytował conix 15.03.2008, 17:51:56


--------------------
Jeśli pomogłem kliknij na Pomógł
Jeśli nie pomogłem kliknij na Pomógł
Go to the top of the page
+Quote Post
Piniek
post
Post #13





Grupa: Przyjaciele php.pl
Postów: 463
Pomógł: 49
Dołączył: 27.12.2007
Skąd: Warszawa

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


no to wiedz ze na tym forum sie gotowcow nie daje (przuanjmniej nie powinno) a kod wklej bo coraz bardziej zaczynam myslec ze wcale nie probowales tego kodu napisac


--------------------
Go to the top of the page
+Quote Post
conix
post
Post #14





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 8.02.2008

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


  1. <?
  2. $uploaded_thumb = "uploady/thumb_". $_FILES['plik']['name'];
  3. $uploaded = "uploady/_". $_FILES['plik']['name'];
  4. $uploaded = "uploady/". $_FILES['plik']['name'];
  5. if (is_uploaded_file($_FILES['plik']['tmp_name'])) {
  6. if ($_FILES['plik']['size'] > 1024*1024*1024) {
  7. echo 'Plik jest za duży';
  8. } else {
  9. move_uploaded_file($_FILES['plik']['tmp_name'],$uploaded);
  10.  
  11. $img = imagecreatefromjpeg('$uploaded'); // utworzenie obrazka na podstawie juz istniejacego
  12. $new_img = imagecreatetruecolor($new_width, $new_height); // utwozenie nowego obrazka
  13. imagecopyresampled($new_img, $img, 0, 0, 0, 0, $new_width, $new_height, $old_width, $old_height); // zmiana rozmiaru zaladowanego obrazka
  14. imagejpeg($new_img, '$uploaded_thumb'); // zapisanie miniaturki
  15. imagedestroy($new_img); // usuwanie smieci
  16. echo "Operacja przebiegła pomyślnie";
  17.  
  18.  
  19. }
  20. } else {
  21. echo 'Błąd przy przesyłaniu danych!';
  22. }
  23. ?>

I wywala tylko
Blad przy przesy...


--------------------
Jeśli pomogłem kliknij na Pomógł
Jeśli nie pomogłem kliknij na Pomógł
Go to the top of the page
+Quote Post
Piniek
post
Post #15





Grupa: Przyjaciele php.pl
Postów: 463
Pomógł: 49
Dołączył: 27.12.2007
Skąd: Warszawa

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


po pierwsze masz powtorzona zmienna
$uploaded;

a po drugie wychodzi na to ze to twoj kod wogule nie dziala bo tworznie minatur jest dopiero po pomyslnym wyslaniu pliku


--------------------
Go to the top of the page
+Quote Post
batman
post
Post #16





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Czy wcześniej działało Ci wysyłanie obrazków, czy cały czas pojawiał się wspomniany komunikat?
Sprawdź, czy tak zadziała:
  1. <?php
  2. // ......
  3. if ($_FILES['plik']['size'] > 1024*1024*1024) {
  4. echo 'Plik jest za duży';
  5. }
  6. else {
  7. if (move_uploaded_file($_FILES['plik']['tmp_name'],$uploaded)) {
  8. // ......
  9. }
  10. else {
  11. echo 'blad';
  12. }
  13. }
  14. ?>


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
conix
post
Post #17





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 8.02.2008

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


^^ blad
PS. Przeciez mozesz testowac u siebie, wiec po co kazesz mi testowac


--------------------
Jeśli pomogłem kliknij na Pomógł
Jeśli nie pomogłem kliknij na Pomógł
Go to the top of the page
+Quote Post
PawelC
post
Post #18





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Po to żebyś się sam nauczył na przyszłość, radzić z takimi problemami.
Go to the top of the page
+Quote Post
Piniek
post
Post #19





Grupa: Przyjaciele php.pl
Postów: 463
Pomógł: 49
Dołączył: 27.12.2007
Skąd: Warszawa

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


Cytat(conix @ 15.03.2008, 18:01:54 ) *
^^ blad
PS. Przeciez mozesz testowac u siebie, wiec po co kazesz mi testowac

chodzi o twoje srodowisko pracy moze nie masz gd lub masz zablokowane jakies funkcje

Ten post edytował Piniek 15.03.2008, 18:04:45


--------------------
Go to the top of the page
+Quote Post
batman
post
Post #20





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Nie każę, tylko sugeruję, poza tym SOA#1 (sprawdź na google co to znaczy).
A dlaczego u Ciebie nie działa? Nie wiem. Pewnie nie masz uprawnień do zapisu do wskazanego katalogu / katalog nie istnieje.
Jest jeszcze kilka rzeczy, której nie napisałeś/sprawdziłeś.
Czy formularz, z którego wysyłasz plik ma atrybut enctype="multipart/form-data" oraz czy w tablicy $_FILES w polu error jest jakaś wartość różna od zera.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
conix
post
Post #21





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 8.02.2008

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


Oto formularz:
  1. <form enctype="multipart/form-data" action="up.php" method="post">
  2. <input type="file" name="plik">
  3. <input type="submit" value="Wyślij na serwer">
  4. <input type="hidden" name="MAX_FILE_SIZE" value="3000000" />
  5. </form>


batman - wiec ktory kod u ciebie smiga?

Aktualny kod wyglada tak:
  1. <?php
  2. $uploaded_thumb = "uploady/thumb_". $_FILES['plik']['name'];
  3. $uploaded = "uploady/_". $_FILES['plik']['name'];
  4. if (is_uploaded_file($_FILES['plik']['tmp_name'])) {
  5. if ($_FILES['plik']['size'] > 1024*1024*1024) {
  6. if ($_FILES['plik']['size'] > 1024*1024*1024) {
  7. echo 'Plik jest za duży';
  8. }
  9.  
  10. if (move_uploaded_file($_FILES['plik']['tmp_name'],$uploaded)) {
  11.  $img = imagecreatefromjpeg('$uploaded'); // utworzenie obrazka na podstawie juz istniejacego
  12. $new_img = imagecreatetruecolor($new_width, $new_height); // utwozenie nowego obrazka
  13. imagecopyresampled($new_img, $img, 10, 10, 10, 10, $new_width, $new_height, $old_width, $old_height); // zmiana rozmiaru zaladowanego obrazka
  14. imagejpeg($new_img, '$uploaded_thumb'); // zapisanie miniaturki
  15. imagedestroy($new_img); // usuwanie smieci
  16. echo "Operacja przebiegła pomyślnie";
  17.  
  18.  
  19. }
  20. } else {
  21. echo 'blad';
  22. }
  23. }
  24. ?>

Zawsze wywala blad, katalogi sa, atrybuty tez


--------------------
Jeśli pomogłem kliknij na Pomógł
Jeśli nie pomogłem kliknij na Pomógł
Go to the top of the page
+Quote Post
Lejto
post
Post #22





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


proszę
formularz:
  1. <FORM ACTION="dodaj.php" METHOD="POST" enctype="multipart/form-data">
  2. <input class=form9 type="file" name="obraz" size="67"><br>
  3. <INPUT name="send" TYPE="submit" class="form11" value="Wyślij">

dodaj.php
  1. <?php
  2. $typ_pliku = $_FILES['obraz']['type'];
  3.  
  4.  
  5.  
  6. switch($typ_pliku)
  7.  
  8. {
  9.  
  10. case 'image/jpeg':
  11.  
  12. $pref_gd = "jpeg";
  13.  
  14. break;
  15.  
  16. case 'image/png':
  17.  
  18. $pref_gd = "png";
  19.  
  20. break;
  21.  
  22.  case 'image/pjpeg':
  23.  
  24. $pref_gd = "jpeg";
  25.  
  26. break;
  27.  
  28. }
  29.  
  30.  
  31.  
  32.  
  33.  
  34. //koniec ustala typ mime pliku i tworzy odpowiedni prefix dla funkcji GD
  35.  
  36.  
  37.  
  38.  
  39.  
  40. $nazwa1 = Date("His");//wykorzystanie daty do wygenerowania nowej nazwy dla pliku
  41.  
  42. $nazwa2 = $_FILES['obraz']['name'];//pobranie nazwy pliku z tablicy
  43.  
  44. $nazwa_zmieniona = "$nazwa1$nazwa2";//połączenie daty z nazwą pliku
  45.  
  46.  
  47.  
  48. //zamienia polskie litery z języczkami aby nie znalazły się w nazwie fotki
  49.  
  50. $nazwa_zmieniona = strtolower($nazwa_zmieniona);
  51.  
  52. $nazwa_zmieniona = ereg_replace(" ","_",$nazwa_zmieniona);
  53.  
  54. $nazwa_zmieniona = ereg_replace("ą","a",$nazwa_zmieniona);
  55.  
  56. $nazwa_zmieniona = ereg_replace("ę","e",$nazwa_zmieniona);
  57.  
  58. $nazwa_zmieniona = ereg_replace("ź","z",$nazwa_zmieniona);
  59.  
  60. $nazwa_zmieniona = ereg_replace("ż","z",$nazwa_zmieniona);
  61.  
  62. $nazwa_zmieniona = ereg_replace("ó","o",$nazwa_zmieniona);
  63.  
  64. $nazwa_zmieniona = ereg_replace("ł","l",$nazwa_zmieniona);
  65.  
  66. $nazwa_zmieniona = ereg_replace("ś","s",$nazwa_zmieniona);
  67.  
  68. $nazwa_zmieniona = ereg_replace("Ś","s",$nazwa_zmieniona);
  69.  
  70. $nazwa_zmieniona = ereg_replace("ć","c",$nazwa_zmieniona);
  71.  
  72.  
  73.  
  74. $file = "./obrazy/".$nazwa_zmieniona.""; //dodaje adres i nazwę zdjęcia do zmiennej, która jet także wykorzystywana podczas
     tworzenia miniatury w pliku create_min
  75.  
  76.  
  77.  
  78. move_uploaded_file($_FILES['obraz']['tmp_name'],"./obrazy/".$nazwa_zmieniona);//wgrywa plik na serwer
  79.  
  80.  
  81.  
  82.  
  83.  
  84. chmod($file, 0755);
  85.  
  86.  
  87.  
  88. if (file_exists("./obrazy/".$nazwa_zmieniona)) { include ("create_min.php");} //tworzy
  89. ?>

i create_min.php
  1. <?php
  2. $obrazek_minn = "$nazwa_zmieniona";
  3.  
  4. $max_width = 150;//default 150
  5.  
  6. $max_height = 113;//default 300
  7.  
  8. $size = @getimagesize($file);
  9.  
  10. $width = $size[0];
  11.  
  12. $height = $size[1];
  13.  
  14. $x_ratio = $max_width / $width;
  15.  
  16. $y_ratio = $max_height / $height;
  17.  
  18. if(($width <= $max_width) && ($height <= $max_height))
  19.  
  20. {
  21.  
  22.  $tn_width = $width;
  23.  
  24.  $tn_height = $height;
  25.  
  26. }
  27.  
  28. else if(($x_ratio * $height) < $max_height)
  29.  
  30. {
  31.  
  32.  $tn_height = ceil($x_ratio * $height);
  33.  
  34.  $tn_width = $max_width;
  35.  
  36. }
  37.  
  38. else
  39.  
  40. {
  41.  
  42.  $tn_width = ceil($y_ratio * $width);
  43.  
  44.  $tn_height = $max_height;
  45.  
  46. }
  47.  
  48.  
  49.  
  50. $func_plus_prefix_1 = "ImageCreateFrom".$pref_gd;
  51.  
  52. $func_plus_prefix_2 = "image".$pref_gd;
  53.  
  54.  
  55.  
  56. $src = @$func_plus_prefix_1($file);
  57.  
  58. $dst = @imagecreatetruecolor($tn_width, $tn_height);
  59.  
  60. @imagecopyresampled($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height, $width, $height);
  61.  
  62. //Header('Content-type: image/jpeg');
  63.  
  64. @$func_plus_prefix_2($dst, "./miniatury/".$obrazek_minn, 100);
  65.  
  66.  
  67.  
  68. //koniec tworzenia miniatury
  69. ?>

na 100% działa


--------------------
Go to the top of the page
+Quote Post
conix
post
Post #23





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 8.02.2008

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


thx smile.gif
pozdro


--------------------
Jeśli pomogłem kliknij na Pomógł
Jeśli nie pomogłem kliknij na Pomógł
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 12:02