Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wysyłanie plików z podanej ścieżki
Forum PHP.pl > Forum > Przedszkole
andrzejlechniak
Hej forumowicze. Mam taki oto kod:
  1. if (isset($_POST['wyslij_plik']))
  2. {
  3. $info="";
  4. $max_rozmiar=1024*2000;
  5. if (is_uploaded_file ($_FILES['plik']['tmp_name'])) {
  6. if ($_FILES['plik']['size'] < $max_rozmiar) {
  7. if($_FILES['plik']['error'] == 0) {
  8. $nazwa_pliku='pliki/'."{$_FILES['plik']['name']}";
  9. //$nazwa_pliku=$_FILES['plik']['name'];
  10. $nazwa_pliku=str_replace ("", " ", trim ($nazwa_pliku));
  11. if(!is_file($nazwa_pliku)) {
  12. if (move_uploaded_file ($_FILES['plik']['tmp_name'], $nazwa_pliku)) {
  13.  
  14. $info.="Plik został poprawnie dodany.";
  15. if(file_exists ($nazwa_pliku)) {
  16. @chmod ($nazwa_pliku, 0644);
  17. }
  18. } else {
  19. $info.="Błąd: 1.<br />";
  20. }
  21. } else {
  22. $info.="Błąd: 2.<br />";
  23. }
  24. } else {
  25. $info.="Błąd: 3.<br />";
  26. }
  27. } else {
  28. $info.="Błąd: 4.<br />";
  29. }
  30. } else {
  31. $info.="Błąd: 5.<br />";
  32. }
  33. }
  34.  
  35. echo '<p>'.$info.'</p>
  36. <form action="admin.php?id=administracja_plikami" method="POST" enctype="multipart/form-data">
  37. <fieldset>
  38. <legend>Prześlij plik</legend>
  39. Wybierz folder: <select>
  40. <option selected value="">wybierz</option>';
  41. $p = opendir('./');
  42. while (false !== ($plik = readdir($p)))
  43. {
  44. if ($plik != "." && $plik != "..")
  45. {
  46. if (is_dir($plik))
  47. {
  48. echo '<option value="'.$plik.'">'.$plik.'<br />';
  49. }
  50. }
  51. }
  52.  
  53. echo'</option>
  54. </select><br />
  55. <hr />
  56. <input type="file" name="plik" /><br />
  57. <input type="file" name="plik" /><br />
  58. <input type="file" name="plik" /><br />
  59. <hr />
  60.  
  61. <input type="submit" name="wyslij_plik" value="Wyślij plik" />
  62. </fieldset>
  63. </form>';


i teraz wyjaśniam moją sprawę. Chciałbym móc przesyłać jeden lub wiele plików do wybranego przeze mnie katalogu. Zrobiłem wypisywanie plików, ale teraz:
1. Jak umieścić to w ścieżce. Rozumiem, że to musi być w $nazwa pliku, ale czy jeszcze raz wpisywać $p = opendir... czy za pomocą funkcji, po prostu JAK?
2. Jak przesłać takim formularzem, jak wyżej podałem wiele zdjęć na raz, znaczy jednocześnie?

Proszę o pomoc!
CuteOne
1. Zamiast $nazwa_pliku='pliki/'."{$_FILES['plik']['name']}"; wstaw $nazwa_pliku=$_POST['folder'].'/'.$_FILES['plik']['name'];
- zmień <select> na <select name="folder">
- przy wstawianiu plików sprawdź czy dany katalog jest prawidłowy - żeby ci ktoś czasem "psikusa" nie zrobił
- ZAWSZE sprawdzaj dane odbierane od użytkownika - żeby ci ktoś czasem "psikusa" nie zrobił

2. AJAX lub IFRAME -> google "php multi upload"
andrzejlechniak
Dobra, zrobiłem wg. Twoich wskazówek, tzn. podmieniłem pewne dane i próbowałem wysłać plik.jpg do wybranego przez siebie folderu i... no mam błąd: 5
CuteOne
- Folder musi mieć ustawione chmode na 777
- możliwe, że będziesz musiał użyć bezwzględnej ścieżki do folderu np. /var/user/public/uploaded/ gdzie uploaded to nazwa folderu pobrana poprzez $_POST['folder']
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.