Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Błąd zapisu pliku
Forum PHP.pl > Forum > Przedszkole
NickOver
Cześć!
Mam problem z funkcją move_uploaded_file. Mianowicie mam metodę:
  1. private function saveFile(){
  2. try {
  3. move_uploaded_file($this->file['name'], Config::uploadFolder);
  4. } catch (Exception $exception) {
  5. var_dump($exception);
  6. }
  7. }

Niestety nie zapisuje mi to pliku. Spróbowałem z try catch, niestety nie wywala żadnych błędów. Błędy mam włączone.
zawartość zmiennych:
  1. $this->file['name'] zrwry5lqnAJmRYhXnI6rKLKxlAmsYuV.jpg
  2. Config::uploadFolder uploads/


Wiecie może o co chodzi?
phpion
Najpierw przeczytaj jakie parametry przyjmuje funkcja move_uploaded_file - nie jest to nazwa pliku i nazwa katalogu. Ponadto przekazuj ścieżki absolutne, a nie relatywne.
NickOver

bool move_uploaded_file ( string $filename , string $destination )


Jeśli $filename nie jest nazwą pliku to czym?
I czemu mam je przekazywać absolutnie? Nie wiem na jakim serwerze będą pliki.
nospor
Cytat
Jeśli $filename nie jest nazwą pliku to czym?
PEŁNĄ sciezką do pliku a nie jego nazwą. Zasadnicza roznica. I funkcja ta nie rzuca wyjątkami....
NickOver
Ok, zmieniłem na:
  1. private function saveFile(){
  2. if (!move_uploaded_file($this->file['tmp_name'], Config::uploadFolder."/".$this->file['name'])){
  3. die('ok');
  4. } else {
  5. die('NieOK');
  6. }
  7. }


Mimo tego nadal nie działa. Dodam że do $this->file przypisuję wartości z $_FILES.
nospor
wlacz wyswietlanie bledow to moze jakies zobaczysz.

ps: rozumiem, ze na ekranie dostajesz blad z die('NieOK'); ?

ps2: znaczy masz durny warunek, jak sie nie powiedzie to walisz OK, jak sie powiedzie to walisz NIEOK.... Napisz dokladnie co dostajesz i jakie masz bledy po ich wlaczeniu
NickOver
No właśnie problem jest w tym że mam włączone błędy, lecz niczego nie dostaję. Po prostu się nie udaje.
nospor
Pytam sie grzecznie jeszcze raz: co DOKLADNIE dostajesz na ekranie. Wyswietla sie ktorys z twoich DIE?
NickOver
Tak. Ale problem po części jest rozwiązany. Funkcja ta zwraca ciągla FALSE przez co ciągle dostaję info że się nie udało. Wiecie może czemu?
Pyton_000
I wynik
  1. echo '<pre>'; var_dump($this->file['tmp_name'], Config::uploadFolder."/".$this->file['name']); echo'</pre>';die(__FILE__ . ': '.__LINE__);

wstawionego PRZED move_upload_...
nospor
Cytat
Funkcja ta nie zwraca żadnych wartości logicznych więc automatycznie nie wchodzi do warunku, przez to cały czas pokazuje się nieOK.
Co ty gadasz za glupoty....
Juz ci pisalem, ze jak sie powiedzie, to wywala ci NIEOK bo tak dales warunek w IF....
Pyton_000
z Manuala...
Cytat
Returns TRUE on success.

If filename is not a valid upload file, then no action will occur, and move_uploaded_file() will return FALSE.

If filename is a valid upload file, but cannot be moved for some reason, no action will occur, and move_uploaded_file() will return FALSE. Additionally, a warning will be issued.
Nattfarinn
Cytat(NickOver @ 19.03.2015, 09:27:52 ) *
Tak. Ale problem po części jest rozwiązany. Funkcja ta zwraca ciągla FALSE przez co ciągle dostaję info że się nie udało. Wiecie może czemu?

Może dlatego, że się udało. Masz negację warunku na samym początku, dlatego dostajesz odwrotny od zamierzonego komunikat...
nospor
@Nattfarinn pisałem mu o tym już dwukrotnie ale dwukrotnie to olał. Ciekawe czy Twoj post oleje....

ps: przenosze
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.