Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wysyłanie plików z podanej ścieżki, Proszę o pomoc
andrzejlechniak
post 21.12.2010, 23:04:39
Post #1





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 7.11.2008

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


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!

Ten post edytował andrzejlechniak 22.12.2010, 00:10:54
Go to the top of the page
+Quote Post
CuteOne
post 22.12.2010, 05:40:38
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


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"

Ten post edytował CuteOne 22.12.2010, 05:42:47
Go to the top of the page
+Quote Post
andrzejlechniak
post 22.12.2010, 08:53:41
Post #3





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 7.11.2008

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


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
Go to the top of the page
+Quote Post
CuteOne
post 22.12.2010, 17:47:13
Post #4





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


- 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']

Ten post edytował CuteOne 22.12.2010, 17:49:02
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 13.08.2025 - 23:52