Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jednoczesny upload dużego zdjęcia i jego miniaturki
Forum PHP.pl > Forum > PHP
Ędward Ącki
Witam to mój pierwszy post na tym forum.
Mam problem ; a mianowicie jak mam kod:
Kod
for($e=0;$e<=10;$e++){
[img]http://www.forumweb.pl/images/nums/blank.png[/img][img]http://www.forumweb.pl/images/nums/3.png[/img]
[img]http://www.forumweb.pl/images/nums/blank.png[/img][img]http://www.forumweb.pl/images/nums/4.png[/img]      $userfile_name = $HTTP_POST_FILES[$image[$e]]['name'];
[img]http://www.forumweb.pl/images/nums/blank.png[/img][img]http://www.forumweb.pl/images/nums/5.png[/img]      if($userfile_name != ''){
[img]http://www.forumweb.pl/images/nums/blank.png[/img][img]http://www.forumweb.pl/images/nums/6.png[/img]      $unikalna_nazwa = substr(md5(microtime()),1,6);
[img]http://www.forumweb.pl/images/nums/blank.png[/img][img]http://www.forumweb.pl/images/nums/7.png[/img]      $rozszezenie = explode('.',$userfile_name);
[img]http://www.forumweb.pl/images/nums/blank.png[/img][img]http://www.forumweb.pl/images/nums/8.png[/img]      $nazwa_image[$e] =  $unikalna_nazwa.'.'.$rozszezenie[1];
[img]http://www.forumweb.pl/images/nums/blank.png[/img][img]http://www.forumweb.pl/images/nums/9.png[/img]      $ISBN =  substr(md5(microtime()),1,6);
[img]http://www.forumweb.pl/images/nums/1.png[/img][img]http://www.forumweb.pl/images/nums/0.png[/img]      
[img]http://www.forumweb.pl/images/nums/1.png[/img][img]http://www.forumweb.pl/images/nums/1.png[/img]
[img]http://www.forumweb.pl/images/nums/1.png[/img][img]http://www.forumweb.pl/images/nums/2.png[/img]
[img]http://www.forumweb.pl/images/nums/1.png[/img][img]http://www.forumweb.pl/images/nums/3.png[/img]      
[img]http://www.forumweb.pl/images/nums/1.png[/img][img]http://www.forumweb.pl/images/nums/4.png[/img]      if(is_uploaded_file($_FILES[$image[$e]]['tmp_name'])){
[img]http://www.forumweb.pl/images/nums/1.png[/img][img]http://www.forumweb.pl/images/nums/5.png[/img]
[img]http://www.forumweb.pl/images/nums/1.png[/img][img]http://www.forumweb.pl/images/nums/6.png[/img]
[img]http://www.forumweb.pl/images/nums/1.png[/img][img]http://www.forumweb.pl/images/nums/7.png[/img]      if(move_uploaded_file($_FILES[$image[$e]]['tmp_name'], 'upload/'.$nazwa_image[$e])){
[img]http://www.forumweb.pl/images/nums/1.png[/img][img]http://www.forumweb.pl/images/nums/8.png[/img]      $blad = 0;
[img]http://www.forumweb.pl/images/nums/1.png[/img][img]http://www.forumweb.pl/images/nums/9.png[/img]      }else{
[img]http://www.forumweb.pl/images/nums/2.png[/img][img]http://www.forumweb.pl/images/nums/0.png[/img]      $blad = 1;
[img]http://www.forumweb.pl/images/nums/2.png[/img][img]http://www.forumweb.pl/images/nums/1.png[/img]      }}}}

to działa on poprawnie wysyła 10 dużych zdjęć w ich oryginalnych rozmiarach z formularza na serw
Postanowiłem dodać opcję automatycznego tworzenia miniaturki do każdego zdjęcia i upload dużego i malego zdjęcia na serw oto kod:

sorka za kod : to jest pierwszy
Kod
    for($e=0;$e<=10;$e++){
[img]http://www.forumweb.pl/images/nums/blank.png[/img][img]http://www.forumweb.pl/images/nums/3.png[/img]
[img]http://www.forumweb.pl/images/nums/blank.png[/img][img]http://www.forumweb.pl/images/nums/4.png[/img]      $userfile_name = $HTTP_POST_FILES[$image[$e]]['name'];
[img]http://www.forumweb.pl/images/nums/blank.png[/img][img]http://www.forumweb.pl/images/nums/5.png[/img]      if($userfile_name != ''){
[img]http://www.forumweb.pl/images/nums/blank.png[/img][img]http://www.forumweb.pl/images/nums/6.png[/img]      $unikalna_nazwa = substr(md5(microtime()),1,6);
[img]http://www.forumweb.pl/images/nums/blank.png[/img][img]http://www.forumweb.pl/images/nums/7.png[/img]      $rozszezenie = explode('.',$userfile_name);
[img]http://www.forumweb.pl/images/nums/blank.png[/img][img]http://www.forumweb.pl/images/nums/8.png[/img]      $nazwa_image[$e] =  $unikalna_nazwa.'.'.$rozszezenie[1];
[img]http://www.forumweb.pl/images/nums/blank.png[/img][img]http://www.forumweb.pl/images/nums/9.png[/img]      $ISBN =  substr(md5(microtime()),1,6);
[img]http://www.forumweb.pl/images/nums/1.png[/img][img]http://www.forumweb.pl/images/nums/0.png[/img]      
[img]http://www.forumweb.pl/images/nums/1.png[/img][img]http://www.forumweb.pl/images/nums/1.png[/img]
[img]http://www.forumweb.pl/images/nums/1.png[/img][img]http://www.forumweb.pl/images/nums/2.png[/img]
[img]http://www.forumweb.pl/images/nums/1.png[/img][img]http://www.forumweb.pl/images/nums/3.png[/img]      
[img]http://www.forumweb.pl/images/nums/1.png[/img][img]http://www.forumweb.pl/images/nums/4.png[/img]      if(is_uploaded_file($_FILES[$image[$e]]['tmp_name'])){
[img]http://www.forumweb.pl/images/nums/1.png[/img][img]http://www.forumweb.pl/images/nums/5.png[/img]
[img]http://www.forumweb.pl/images/nums/1.png[/img][img]http://www.forumweb.pl/images/nums/6.png[/img]
[img]http://www.forumweb.pl/images/nums/1.png[/img][img]http://www.forumweb.pl/images/nums/7.png[/img]      if(move_uploaded_file($_FILES[$image[$e]]['tmp_name'], 'upload/'.$nazwa_image[$e])){
[img]http://www.forumweb.pl/images/nums/1.png[/img][img]http://www.forumweb.pl/images/nums/8.png[/img]      $blad = 0;
[img]http://www.forumweb.pl/images/nums/1.png[/img][img]http://www.forumweb.pl/images/nums/9.png[/img]      }else{
[img]http://www.forumweb.pl/images/nums/2.png[/img][img]http://www.forumweb.pl/images/nums/0.png[/img]      $blad = 1;
[img]http://www.forumweb.pl/images/nums/2.png[/img][img]http://www.forumweb.pl/images/nums/1.png[/img]      }}}}


coż jest?? blinksmiley.gif
  1. <?php
  2. for($e=0;$e<=10;$e++){
  3.  
  4.      $userfile_name = $HTTP_POST_FILES[$image[$e]]['name'];
  5.      if($userfile_name != ''){
  6.      $unikalna_nazwa = substr(md5(microtime()),1,6);
  7.      $rozszezenie = explode('.',$userfile_name);
  8.      $nazwa_image[$e] =  $unikalna_nazwa.'.'.$rozszezenie[1];
  9.      $ISBN =  substr(md5(microtime()),1,6);
  10.      
  11.  
  12.  
  13.      
  14.      if(is_uploaded_file($_FILES[$image[$e]]['tmp_name'])){
  15.  
  16.  
  17.      if(move_uploaded_file($_FILES[$image[$e]]['tmp_name'], 'upload/'.$nazwa_image[$e])){
  18.      $blad = 0;
  19.      }else{
  20.      $blad = 1;
  21.      }}}}
  22. ?>


o a to drugi:
  1. <?php
  2. for($e=0;$e<=10;$e++){
  3.  
  4.      $userfile_name = $HTTP_POST_FILES[$image[$e]]['name'];
  5.      if($userfile_name != ''){
  6.      $unikalna_nazwa = substr(md5(microtime()),1,6);
  7.      $rozszezenie = explode('.',$userfile_name);
  8.      $nazwa_image[$e] =  $unikalna_nazwa.'.'.$rozszezenie[1];
  9.      $ISBN =  substr(md5(microtime()),1,6);
  10.      
  11.  
  12.  
  13.      
  14.      if(is_uploaded_file($_FILES[$image[$e]]['tmp_name'])){
  15.  
  16.  
  17.      if(move_uploaded_file($_FILES[$image[$e]]['tmp_name'], 'upload/'.$nazwa_image[$e])){
  18.      $blad = 0;
  19.      }else{
  20.      $blad = 1;
  21.      }
  22.      
  23.  
  24.      $image='upload/'.$nazwa_image[$e];
  25. $size = getimagesize($image);
  26. $height = 80;
  27. if($size[1] > $height){
  28.    $width = round($size[0] * ($height / $size[1]));
  29.    $image_p = imagecreatetruecolor($width, $height);
  30.    $image = imagecreatefromjpeg($image);
  31.    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $size[0], $size[1]);
  32. }else{
  33.    $image_p = imagecreatetruecolor($size[0], $size[1]);
  34.    $image = imagecreatefromjpeg($image);
  35.    imagecopy($image_p, $image, 0, 0, 0, 0, $size[0], $size[1]);
  36. }
  37.  
  38. imagejpeg($image_p, 'upload/mini_'.$nazwa_image[$e], 100);
  39. imagedestroy($image_p);
  40. imagedestroy($image);
  41.  
  42.  
  43.  
  44.  
  45.  }}}
  46. ?>

i w tym problem że jak do formularza dodam 10 fotek to skrypt zapisze tylko jedno (pierwsze) zdjęcie w oryginalnych rozmiarach i jego miniaturkę - no więc tworzenie i zapis miniaturki działa. Zapisuje się również duże zdjęcie ale dlaczego tylko jedno a nie wszystkie 10 questionmark.gif
Mize
Raczej nie ten dział, a poza tym prościej byłoby stworzyć automatycznie miniaturke podczas uploadu dużego obrazu.

Tutaj masz artykuł na ten temat. http://webmade.org/porady/miniaturki-php-biblioteka-gd.php
Szczerze to go nie czytałem, ale wydaje się dość prosty.
Ędward Ącki
no to jest wykożystana ta biblioteka tylok w tym problem że zapisuje tylko 1 fotkę ale jest przecież w pętli blinksmiley.gif
Ociu
Poprawiam bbCode i przenoszę z Obiektówki.
erix
Nie widzę tu niczego, co mogłoby coś psuć (żadnych błędów nie ma? jak masz formularz?), ale spróbuj na wszelki wypadek użyć innego algorytmu generowania identyfikatora zamiast tego:
  1. <?php
  2. $unikalna_nazwa = substr(md5(microtime()),1,6);
  3. ?>

Poza tym, generowałbym tablicę z obrazków w formularzu, a nie wynajdywał koło na nowo. tongue.gif
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.