Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Masowy upload plików (drobnostka)
in5ane
post
Post #1





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Witam,
chciałem aby ktoś mi pomógł jak tutaj zrobić, żeby w tym uploadzie po zauploadoawniu nie pisał napis "Ogłoszenie dodano poprawnie" tyle razy ile wysłano dany plik tylko jeden raz i że jak któryś plik nie został przesłany z jakiejś przyczyny (np. nie to rozszerzenie, za duży rozmiar czy inne), to żeby wyświetliło który to plik (oryginalną nazwę, nie tę utworzoną).

Oto mój kod:
  1. <?php
  2. if (isset($_FILES['Plik']))
  3. {
  4.  $cnt=count($_FILES["Plik"]["name"]);
  5.  
  6.  for($i=0;$i<$cnt;$i++)
  7.  {
  8. if($_FILES["Plik"]["name"][$i]!='' && $_FILES["Plik"]["size"][$i]>0)
  9. {
  10. $exts=strtolower(substr($_FILES["Plik"]["name"][$i],-3));
  11.  
  12. if ($exts == "gif" || $exts == "jpg" || $exts == "png")
  13. {
  14. srand((double)microtime()*1000000);
  15. $nazwa = md5(uniqid(rand()));
  16. $kr = ".";
  17. if (move_uploaded_file($_FILES["Plik"]["tmp_name"][$i],'fotki/'.''.$nazwa.''.''.$kr.''.''.$exts.''))
  18. {
  19.  echo('<center>Twoje ogłoszenie jest już umieszczone.</center>');
  20.  $query = "INSERT INTO zdjecia (id, nazwa_pliku, id_osoby) VALUES ('', '$nazwa$kr$exts', '$id');";
  21.  $result = mysql_query ($query);
  22.  $querys = "UPDATE users SET status='1' WHERE id='$id';";
  23.  $results = mysql_query ($querys);
  24.  }
  25.  else
  26.  {
  27.  switch($_FILES["Plik"]["error"][$i])
  28. {
  29. case 1: echo('Przesyłany plik jest większy niż zezwala konfiguracja serwera.<br><br><a href="java script:history.go(-1)">Wstecz</a>');break;
  30. case 2: echo('Przesyłany plik jest wiekszy niż zezwala formularz.<br><br><a href="java script:history.go(-1)">Wstecz</a>');break;
  31. case 3: echo('Przesłano tylko część pliku.<br><br><a href="java script:history.go(-1)">Wstecz</a>');break;
  32. case 4: echo('Plik nie został przesłany.<br><br><a href="java script:history.go(-1)">Wstecz</a>');break;
  33. }
  34.  }
  35. }
  36. else
  37. {
  38.  echo('Przesyłany plik nie jest plikiem graficznym.<br><br><a href="java script:history.go(-1)">Wstecz</a>');
  39. }
  40.  } 
  41.  }
  42. }
  43. ?>


Z góry dziękuję za pomoc. Formularz jest jasny, więc go nie dawałem.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Hekko
post
Post #2





Grupa: Zarejestrowani
Postów: 255
Pomógł: 23
Dołączył: 1.12.2003

Ostrzeżenie: (10%)
X----


Na szybko wymyśliłem coś takiego (troche prymitywnie ale powinno działać):

  1. <?php
  2. if (isset($_FILES['Plik']))
  3. {
  4.  $cnt=count($_FILES["Plik"]["name"]);
  5.  $blad=0;
  6.  for($i=0;$i<$cnt;$i++)
  7.  {
  8. if($_FILES["Plik"]["name"][$i]!='' && $_FILES["Plik"]["size"][$i]>0)
  9. {
  10. $exts=strtolower(substr($_FILES["Plik"]["name"][$i],-3));
  11.  
  12. if ($exts == "gif" || $exts == "jpg" || $exts == "png")
  13. {
  14. srand((double)microtime()*1000000);
  15. $nazwa = md5(uniqid(rand()));
  16. $kr = ".";
  17. if (move_uploaded_file($_FILES["Plik"]["tmp_name"][$i],'fotki/'.''.$nazwa.''.''.$kr.''.''.$exts.''))
  18. {
  19.  $brakbledu=1;
  20.  
  21.  $query = "INSERT INTO zdjecia (id, nazwa_pliku, id_osoby) VALUES ('', '$nazwa$kr$exts', '$id');";
  22.  $result = mysql_query ($query);
  23.  $querys = "UPDATE users SET status='1' WHERE id='$id';";
  24.  $results = mysql_query ($querys);
  25.  }
  26.  else
  27.  {
  28.  $brakbledu=0;
  29.  switch($_FILES["Plik"]["error"][$i])
  30. {
  31. case 1: echo('Przesyłany plik '.$_FILES["Plik"]["name"][$i].' jest większy niż zezwala konfiguracja serwera.<br><br><a href="java script:history.go(-1)">Wstecz</a>');break;
  32. case 2: echo('Przesyłany plik '.$_FILES["Plik"]["name"][$i].' jest wiekszy niż zezwala formularz.<br><br><a href="java script:history.go(-1)">Wstecz</a>');break;
  33. case 3: echo('Przesłano tylko część pliku '.$_FILES["Plik"]["name"][$i].'.<br><br><a href="java script:history.go(-1)">Wstecz</a>');break;
  34. case 4: echo('Plik '.$_FILES["Plik"]["name"][$i].' nie został przesłany.<br><br><a href="java script:history.go(-1)">Wstecz</a>');break;
  35. }
  36.  }
  37.  
  38. }
  39. else
  40. {
  41.  echo('Przesyłany plik '.$_FILES["Plik"]["name"][$i].' nie jest plikiem graficznym.<br><br><a href="java script:history.go(-1)">Wstecz</a>');
  42. }
  43.  } 
  44.  $blad=$blad+$brakbledu;
  45.  }
  46.  if($blad==$cnt)
  47.  {
  48.  echo('<center>Twoje ogłoszenie jest już umieszczone.</center>');
  49.  }
  50.  
  51. }
  52. ?>
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 19.09.2025 - 21:51