Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> kilka plików przy jednym uploadzie, jak?
pikornecki
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 27.07.2010

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


czy jest możliwość zaznaczenia kilku plików w files i wysłania na serwer tak jak to jest np n facebooku?
Go to the top of the page
+Quote Post
kilas88
post
Post #2





Grupa: Zarejestrowani
Postów: 305
Pomógł: 25
Dołączył: 27.01.2007

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


tak

np
http://www.uploadify.com/
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #3





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Bez wodotrysków możesz tak:
  1. <input type="file" multiple name="ufile[]" size="50" />

Funkcję tę posiadają tylko najnowsze przeglądarki, obsługujące HTML5 typu Gecko 1.9.2 (dostępne m. in. w FireFox 3.6) oraz nowsze wersje przeglądarek opartych na silniku WebKit obsługujące atrybut multiple elementu <input> z atrybutem type="file". Atrybut ten pozwala do jednego inputa wstawić wiele plików.
Go to the top of the page
+Quote Post
pikornecki
post
Post #4





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 27.07.2010

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


dobra to teraz pytanie jak z
  1. name="ufile[]"
odczytać
bo w chwili obecnej mam takie coś:
  1. $plik = $HTTP_POST_FILES['user_file']['name'];
  2. $plik = $HTTP_POST_FILES['user_file']['tmp_name'];

i jak zliczyć ile tych plików ktoś załadował bo chodzi mi konkretnie o to, że jak już ktoś załaduje te pliki to później muszę pozmieniać nazwy tych plików.
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #5





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




To mój Panie jest tablica i tak trzeba ją odczytać (IMG:style_emoticons/default/smile.gif) Np.:
  1. if (!is_dir($upload_dir)) {
  2. die ('<div class="message" style="left: 380px; top: 100px;"><span class="pl">Błąd! Katalog docelowy '.$upload_dir.' nie istnieje!</span></div>');
  3. }
  4. for ($i=0; $i<sizeof($_FILES['ufile']['size']); $i++) {
  5. $top = $i*35+130;
  6. if ($_FILES['ufile']['size'][$i] != 0) {
  7. $uploaded = $upload_dir.$_FILES['ufile']['name'][$i];
  8.  
  9. // tu sprawdzenie rozszerzeń, nazwy, i co tam sobie życzysz...
  10. if (in_array($extension, $allowedExtensions)) {
  11.  
  12. if (is_uploaded_file($_FILES['ufile']['tmp_name'][$i])) {
  13. if (file_exists($upload_dir.$_FILES['ufile']['name'][$i])) { // czy plik już istnieje
  14. echo '<div class="message" style="left:400px; top: '.$top.'px;"><span class="pl">Błąd! Plik ['.$i.'] już istnieje!</span></div>';
  15. } else {
  16. if ($_FILES['ufile']['size'][$i] > 2*1024*1024) { // ograniczenie wielkości
  17. echo '<div class="message" style="left:390px; top: '.$top.'px;"><span class="pl">Błąd! Plik numer ['.$i.'] jest za duży!</span></div>';
  18. } elseif (move_uploaded_file($_FILES['ufile']['tmp_name'][$i],$uploaded)) {
  19. chmod($uploaded, 0755);
  20. echo '<div class="message" style="left:330px; top: '.$top.'px;"><span class="key">Operacja wysyłania pliku ['.$i.'] przebiegła pomyślnie.</span></div>';
  21. } else {
  22. switch($_FILES['ufile']['error']) {
  23. case 1:
  24. echo '<div class="message" style="left:300px; top: '.$top.'px;"><span class="pl">Błąd! Przesyłany plik ['.$i.'] jest większy niż zezwala konfiguracja serwera!</span></div>';
  25. break;
  26. case 2:
  27. echo '<div class="message" style="left:300px; top: '.$top.'px;"><span class="pl">Błąd! Przesyłany plik ['.$i.'] jest większy niż zezwala formularz!</span></div>';
  28. break;
  29. case 3:
  30. echo '<div class="message" style="left:300px; top: '.$top.'px;"><span class="pl">Błąd! Przesłano tylko część pliku ['.$i.']!</span></div>';
  31. break;
  32. case 4:
  33. echo '<div class="message" style="left:350px; top: '.$top.'px;"><span class="pl">Błąd! Plik ['.$i.'] nie został przesłany!</span></div>';
  34. break;
  35. } // błędy
  36. } // jeżeli niepowodzenie
  37. } // jeżeli plik juz istnieje
  38. } else {
  39. echo '<div class="message" style="left:350px; top: '.$top.'px;"><span class="pl">Błąd przy przesyłaniu danych w pliku ['.$i.']!</span></div>';
  40. } // uplowadowanie
  41. } else {
  42. echo '<div class="message" style="left:350px; top: '.$top.'px;"><span class="pl">Błąd! Niepoprawny format pliku ['.$i.']!</span></div>';
  43. } // rozszerzenia
  44. } else {
  45. echo '';
  46. }// !=0
  47. } // tablicowanie plików
  48. } // upload
Go to the top of the page
+Quote Post
pikornecki
post
Post #6





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 27.07.2010

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


Dzięki wielkie, a tak jeszcze z innej beczki, używam netbeansa i chcę używać kontrolek z HTML5 więc patrząc po dokumentacji wystarczy
  1. <!DOCTYPE html>
niestety pokazuje mi że nie zna takich opcji jak multiple mimo że serwer wykonuje, jednak już takiego kodu:
  1. <label>Cc: <input type=email multiple name=cc list=contacts></label>
  2. ...
  3. <datalist id="contacts">
  4. <option value="hedral@damowmow.com">
  5. <option value="pillar@example.com">
  6. <option value="astrophy@cute.example">
  7. <option value="astronomy@science.example.org">
  8. </datalist>


nie wykonuje poprawnie tak jak dokumentacja wskazuje


powinno dać listę rozwijalną a nic nie wyskakuje bo nie zna np <datalist> czy list

Ten post edytował pikornecki 18.03.2011, 16:19:15
Go to the top of the page
+Quote Post

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: 14.09.2025 - 14:23