Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wgrywanie plików na problem - nic sie nie dzieje
Forum PHP.pl > Forum > Przedszkole
klapaucius
Mam następujący problem:
  1. <?php
  2. $location = 'clubs/big_picture/' . basename($_FILES['userfile']['name']);
  3. if (move_uploaded_file($_FILES['userfile']['tmp_name'], $location)) {
  4. echo "Plik został załadowany poprawnie...";
  5. } else {
  6. echo "Plik nie został załadowany...";
  7. }
  8. ?>
  9. <form enctype="multipart/form-data" action="control.php?page=gang_pictures" method="POST">
  10. <input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
  11. Plik do wysłania: <input name="userfile" type="file" />
  12. <input type="submit" value="Wyślij" />
  13. </form>

Mam taki kodzik i nie wiem co mam zle, gdyz po wybraniu pliku i wcisnieciu "wyslij" nic sie nie dzieje, tzn formularz się "wyczyszcza". Nie wyskakuje jednak żaden komunikat, który powinien wyskoczyć przy jakiejkolwiek - udanej lub nieudanej próbie wgrania pliku. Siedzę nad tym z jakąś godzine i nie mam pojecia co tu jest zle. prosze o pomoc!
Fifi209
a gdzie masz $location zdefiniowane ?
klapaucius
Cytat(fifi209 @ 21.08.2010, 20:44:37 ) *
a gdzie masz $location zdefiniowane ?

ah tak... sory, zapomniałem skopiować. Już poprawiłem W każdym razie również z zadeklarowaną ową zmienną nic nowego sie nie dzieje
everth
  1. Czy dany katalog istnieje?
  2. Czy ma ustawione uprawnienia do zapisu (chmod 777) ?
  3. Czy ścieżka bezwzględna (realpath()) z $location zgadza się ze ścieżką dostępu do tego katalogu?
klapaucius
Cytat(everth @ 21.08.2010, 21:10:00 ) *
  1. Czy dany katalog istnieje?
  2. Czy ma ustawione uprawnienia do zapisu (chmod 777) ?
  3. Czy ścieżka bezwzględna (realpath()) z $location zgadza się ze ścieżką dostępu do tego katalogu?

1 - tak
2 - tak
3- nie za bardzo rozumiem... O jaką ścieżkę bezwzględną chodzi?
everth
Ad. 3: Daj sobie var_dump(realpath($location)) i zobacz czy to co wypluwa pokrywa się ze ścieżką do twojego katalogu.
Ramzaa
Wszystko ładnie pięknie, ale za cholerę nie widzę tutaj funkcji do przesyłania pliku na serwer. Ja jestem ślepy? Dalej.. hmm.. ścieżka - ja bym spróbował tak zrobić:
  1. $location = '../clubs/big_picture/' . basename($_FILES['userfile']['name']);

A tutaj poprawny kod:
  1. <?php
  2.  
  3. if (isset($_POST['submit'])) {
  4.  
  5. $location = '../clubs/big_picture/' . basename($_FILES['userfile']['name']);
  6.  
  7. if (move_uploaded_file($_FILES['userfile']['tmp_name'], $location)) {
  8.  
  9. echo "Plik został załadowany poprawnie...";
  10. move_uploaded_file($_FILES['userfile']['tmp_name'], "$location");
  11.  
  12. }
  13.  
  14. else {
  15.  
  16. echo "Plik nie został załadowany...";
  17.  
  18. }
  19.  
  20. }
  21.  
  22. else {
  23.  
  24. ?>
  25.  
  26. <form enctype="multipart/form-data" action="control.php?page=gang_pictures" method="POST">
  27. <input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
  28. Plik do wysłania: <input name="userfile" type="file" />
  29. <input type="submit" name="submit" value="Wyślij" />
  30. </form>
  31.  
  32. <?php
  33.  
  34. }
  35.  
  36. ?>

Pozdrawiam.
klapaucius
Cytat(Ramzaa @ 23.08.2010, 00:40:39 ) *
Wszystko ładnie pięknie, ale za cholerę nie widzę tutaj funkcji do przesyłania pliku na serwer. Ja jestem ślepy? Dalej.. hmm.. ścieżka - ja bym spróbował tak zrobić:
  1. $location = '../clubs/big_picture/' . basename($_FILES['userfile']['name']);

A tutaj poprawny kod:
  1. <?php
  2.  
  3. if (isset($_POST['submit'])) {
  4.  
  5. $location = '../clubs/big_picture/' . basename($_FILES['userfile']['name']);
  6.  
  7. if (move_uploaded_file($_FILES['userfile']['tmp_name'], $location)) {
  8.  
  9. echo "Plik został załadowany poprawnie...";
  10. move_uploaded_file($_FILES['userfile']['tmp_name'], "$location");
  11.  
  12. }
  13.  
  14. else {
  15.  
  16. echo "Plik nie został załadowany...";
  17.  
  18. }
  19.  
  20. }
  21.  
  22. else {
  23.  
  24. ?>
  25.  
  26. <form enctype="multipart/form-data" action="control.php?page=gang_pictures" method="POST">
  27. <input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
  28. Plik do wysłania: <input name="userfile" type="file" />
  29. <input type="submit" name="submit" value="Wyślij" />
  30. </form>
  31.  
  32. <?php
  33.  
  34. }
  35.  
  36. ?>

Pozdrawiam.

Dzięki wielkie mistrzu. Gra wszystko. To znaczy prawie wszystko. Mam kolejny problem, może troszkę odchodzi on od tematu ale jak zrobić, aby pliki wgrane na serwer miały domyślną wartość chmod 777? Bo jak teraz wgrywam to nie mają tej wartości i są "zablokowane".
everth
@Ramzaa, a po jaką cholerę dublujesz move_uploaded_file()? Nie wystarczy ci wywołanie jej w warunku?

@klapaucius: chmod();
klapaucius
Cytat(everth @ 24.08.2010, 02:02:26 ) *
@Ramzaa, a po jaką cholerę dublujesz move_uploaded_file()? Nie wystarczy ci wywołanie jej w warunku?

Faktycznie. Ale po usunięciu jednej z tych funkcji i zostawieniu tej wywoływanej poprzez warunek działa wszystko ok. Dzięki za spostrzegawczość smile.gif
Cytat(everth @ 24.08.2010, 02:02:26 ) *
@klapaucius: chmod();

Dzięki piękne po raz drugi.
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.