Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Upload kilku plików
Forum PHP.pl > Forum > Przedszkole
Robert1985
Kurcze niby wszystko gra ,ale na serwer przesyła tylko jedno zdjęcie ,w formularzu mam 3 pola file o atrybucie plik[] czyli wszystko powinno grać sad.gif ,a przesyła tylko jedno zdjęcie dlaczego??
  1. if(isset($_POST['submit'])){
  2. switch($_POST['typ']){
  3. case 'obraz':
  4. for($i=0;$i<count($_FILES['plik']['name']);$i++){
  5. $kod_bledu = $_FILES['plik']['error'][$i];
  6. $temp = $_FILES['plik']['tmp_name'][$i];
  7. $nazwa = $_FILES['plik']['name'][$i];
  8. $rozmiar = $_FILES['plik']['size'][$i];
  9. $mime = $_FILES['plik']['type'][$i];
  10. $ext = substr($nazwa,strrpos($nazwa,'.')+1);
  11. $rozszerz = array('JPEG','JPG','PJPEG','PNG','GIF','jpeg','jpg','pjpeg','png','gif');
  12. $typy_mime = array('image/jpeg','image/png','image/gif','image/pjpeg');
  13. @$wielkosc = getimagesize($_FILES['plik']['tmp_name'][$i]);
  14.  
  15. if($kod_bledu==0){
  16. if(is_uploaded_file($temp)){
  17. if(!file_exists('wyslane/'.$nazwa)){
  18. if($rozmiar<=3000000){
  19. if(in_array($ext,$rozszerz)){
  20. if(in_array($mime,$typy_mime)){
  21. if(is_array($wielkosc) && $wielkosc[0]>5 && $wielkosc[1]>5){
  22. $lokalizacja = 'wyslane/'.sha1(time()).'.'.$ext;
  23. if(move_uploaded_file($temp,$lokalizacja)){
  24. chmod($lokalizacja,0600);
  25. echo 'Plik nr: '.($i+1) .' został wysłany na serwer dzięki!<br/>';
  26. }else {echo "Przeniesienie niemożliwe!<br/>";}
  27. }else {echo "Plik nie jest obrazkiem!<br/>";}
  28. }else {echo "Niewłaściwy typ mime<br/>";}
  29. }else {echo "Niewłaściwe rozszerzenie pliku!<br/>";}
  30. }else {echo "Wielkość pliku przekracza ustawienia skryptu!<br/>";}
  31. }else{echo "Taki plik już istnieje!<br/>";}
  32. }else{echo "Plik jest plikiem lokalnym!<br/>";}
  33. }else {
  34. switch($kod_bledu){
  35. case 1:echo "Wielkość pliku przekracza ustawienia serwerw!<br/>";break;
  36. case 2:echo "Wielkość pliku przekracza ustawienia skryptu!<br/>";break;
  37. case 3:echo "Plik został wysłany częściowo!<br/>";break;
  38. case 4:echo "Plik nie został wysłany!<br/>";break;
  39. }
  40. }
  41. }
  42. echo '<a href=\"/../index.php \">Strona Główna</a><br/>';
  43. break;


Acha rzeby było śmieszniej otrzymuję komunikaty typu: Plik nr1 został wyslany i Plik nr.2 został wysłany ,ale jest tylko jeden :/
nospor
przeciez wszystkie kopiujesz pod tę samą lokalizację:
$lokalizacja = 'wyslane/'.sha1(time()).'.'.$ext;
smile.gif
jmail
zamień to

  1.  
  2. $lokalizacja = 'wyslane/'.sha1(time()).'.'.$ext
  3.  


na to

  1.  
  2. $lokalizacja = 'wyslane/'$i.'_'.sha1(time()).'.'.$ext
  3.  


time zwraca Ci tylko co do sekundy czas i jak skrypt wykonuje się poniżej jednej sekundy wtedy masz taką samą nazwę pliku - dodaj licznik jako ograniczenie
Robert1985
Dzięki wam nie wpadlem na to ,że znacznik czasu może mieć na to wpływ ,rzeczywiście chodzi o czas wykonania. smile.gif, ale czy to oznacza ,że ograniczenie file_exists nie dziala?? sad.gif
jmail
załóżmy że wysyłasz plik nazwa.jpg

to według Twojego kodu sprawdzasz czy istnieje nazwa.jpg a następnie wrzucasz go na time().jpg więc jak ma działać winksmiley.jpg
Robert1985
Tak już rozumiem ,czyli zalożenie działa ,bo miało sprawdzać dla nazwy jaką podaje User, jeszcze raz dzięki.
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.