Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z uploadem pliku na serwer
Forum PHP.pl > Forum > PHP
maxx304
Witam. Dostałem do obsługi program, który uploaduje plik do bazy danych. W skrócie działanie wygląda tak, że mam listę miast, a w miastach userów (wszystko w bazie danych), która jest wyświetlana na stronie. Jako administrator mogę dodawać odpowiednie logo obok każdego usera z wybranego miasta. I wszystko byłoby dobrze, gdyby nie to, że od wczoraj upload danego loga dla wybranego użytkownika nie działa. Na górze strony wyskakuje mi taki błąd:
  1. Warning: move_uploaded_file(/public_html/images_logo/864.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in /public_html/admin/viewmiasto.php on line 75
  2. Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpKNHNLH' to '/public_html/images_logo/864.jpg' in /public_html/admin/viewmiasto.php on line 75
  3. Problem: Plik nie może być skopiowany do katalogu.


"No such file or directory" wg mnie oznacza, że tego pliku tam nie ma... I tutaj moje pytanie: w którym momencie występuje problem? Czy jest to problem tego, że plik nie został przegrany na serwer, a funkcja próbuje go przenieść, czy też chodzi o to, że plik jest na serwerze, ale nie da się go przenieść?
Myślałem, że może błędnie zdefiniowano folder do uploadu... ale zmienna
  1. $uploaddir
wygląda tak:

  1. $uploaddir = '/public_html/images_logo/';

A więc chyba poprawnie...

Dodam że ja nic nie zmieniałem w skrypcie. A może problem leży w samej bazie danych? Pomóżcie proszę, bo ja nie mam pomysłu.
fander
/public_html/images_logo/ <= tego katalogu tam nie ma

/ <= takie coś oznacza ze odwołujesz się do katalogu głównego serwera twoja ścieżka powinna wyglądać następująco

/www/htdocs/[domena]/public_html/images_logo/ <= bezwzględna ścieżka katalogu w którym trzymasz obrazki (może być inna na twoim serwerze ale na pewno nie wygląda jak twoja aktualna)

maxx304
Cytat(fander @ 8.10.2010, 09:54:05 ) *
/public_html/images_logo/ <= tego katalogu tam nie ma

/ <= takie coś oznacza ze odwołujesz się do katalogu głównego serwera twoja ścieżka powinna wyglądać następująco

/www/htdocs/[domena]/public_html/images_logo/ <= bezwzględna ścieżka katalogu w którym trzymasz obrazki (może być inna na twoim serwerze ale na pewno nie wygląda jak twoja aktualna)


u mnie na serwerze, po zalogowaniu się, jest tylko folder public_html, po wejściu do niego jest kilka innych folderów, m.in. images_logo. Wydaje mi się więc, że ścieżka jest prawidłowa, tym bardziej że wcześniej wszystko działało.
fander
Po zalogowaniu się ? masz na myśli FTP ? Żaden serwis hostingowy nie umieści katalogu głównego dla stron w jakimś dziwnym miejscu typu /public_html/

Jeśli nie masz dedyka i sam sobie nie instalowałeś apache to jest niemożliwe abyś miał taką ścieżkę. Zauważ że na serwerze gdzie masz stronę może być wiele domen czyli wielu klientów, i jak by to wyglądało jakbyś logował się do /public_html/ a tam strony twojej konkurencji. Myślenie nie boli.

Aby sprawdzić jaka jest bezwzględna ścieżka na serwerze do pliku który aktualnie przetwarzasz wykonujesz kod:

Kod
echo $_SERVER['DOCUMENT_ROOT'];


Założę się o skrzynkę czystej że nie wyświetli się /public_html/
sniver
Poszukaj w google co to zarezerwowana zmienna $_FILES i wykorzystywana funkcja move_uploaded_file (a konkretnie jej parametry) - masz link: http://tinyurl.com/3xadueb
maxx304
Cytat(fander @ 8.10.2010, 10:36:29 ) *
Po zalogowaniu się ? masz na myśli FTP ? Żaden serwis hostingowy nie umieści katalogu głównego dla stron w jakimś dziwnym miejscu typu /public_html/

Jeśli nie masz dedyka i sam sobie nie instalowałeś apache to jest niemożliwe abyś miał taką ścieżkę. Zauważ że na serwerze gdzie masz stronę może być wiele domen czyli wielu klientów, i jak by to wyglądało jakbyś logował się do /public_html/ a tam strony twojej konkurencji. Myślenie nie boli.

Aby sprawdzić jaka jest bezwzględna ścieżka na serwerze do pliku który aktualnie przetwarzasz wykonujesz kod:

Kod
echo $_SERVER['DOCUMENT_ROOT'];


Założę się o skrzynkę czystej że nie wyświetli się /public_html/



OK, sorry, mój błąd. Masz rację, z rozpędu napisałem byle co. Sprawdzę zaraz jak ta ścieżka wygląda. Poczytam również o samej zmiennej $_FILES, tak jak mi poradził kolega pod Tobą. Tylko zastanawia mnie, czy jest to faktycznie wina ścieżki, skoro 2 dni temu śmigało, a dziś już nie chce?

Tak czy owak, dziękuję bardzo za odpowiedzi.

Witam, sprawa już rozwiązana, okazało się, że problemem było przekierowanie na inną naszą witrynę z poziomu panelu administracyjnego firmy hostingowej. Adres wskazywał nieodpowiednie miejsce na serwerze. Po usunięciu przekierowania wszystko działa poprawnie.
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.