Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] move_uploaded_file?
Forum PHP.pl > Forum > Przedszkole
azbestian
Witam serdecznie,

Mam problem z funkcją move_uploaded_file, prawa do katalogu w którym upload-uje pliki ustawione są prawdłowo 0777, ścieżki w skrypcię są dobrze ustawione, funkcja is_uploaded_file zwraca true, natomiast funkcja move_uploaded_file daje false, czy może to być wina serwera?

  1. <?php
  2. $kat="okladki/";
  3.    if(is_uploaded_file($_FILES['recenzja']['tmp_name']))
  4.        {
  5.            if($this->isPictureFile($_FILES['recenzja']['type'],"mime"))
  6.            {
  7.                if (move_uploaded_file($_FILES['recenzja']['tmp_name'], $kat.$_FILES['recenzja']['name'])) {
  8.                    return true;    
  9.                } else {
  10.                    return false;    
  11.                }
  12.            }
  13.        }
  14. ?>
nospor
wlacz sobie wyswietlanie wszystkich bledow a dowiesz sie jaki masz blad
http://nospor.pl/php-faq-n29.html#faq-2
blooregard
Problem może tkwić w uprawnieniach katalogu 'tmp', pamiętam, że też kiedys z tym walczyłem smile.gif i to chyba było to. Sprawdzić nie zaszkodzi smile.gif.
-Bart-
Widze ze probujesz przeniesc ten plik pod oryginalna nazwe tego pliku - wiec moze tutaj jest problem - moze w nazwie wystepuja jakies niedozwolone znaki i serwer nie potrafi tego pliku zapisac pod ta nazwa.

Sprobuj z jakims innym plikiem.

Pozdrawiam
nevt
spróbuj:
  1. <?php
  2. // zamiast
  3. $kat='okladki/';
  4.  
  5. //dać ścieżkę wględną
  6. $kat='./okladki/';
  7.  
  8. //lub bezwzględną
  9. $kat='/okladki/';
  10. ?>

i jeszcze jedno, co to za metoda $this->isPictureFile($_FILES['recenzja']['type'],"mime") questionmark.gif
pokaż jej kod, może tam masz błąd i warunek się nie spełnia?
azbestian
Po włączeniu pełnego pokazywania błędów dostaję komunikat o braku dostępu:
  1. <?php
  2. Warning: move_uploaded_file(../okladki/p3.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/wydawnictwo/public_html/panel/class_pracownik.php on line 807
  3. ?>


Ściezki jak i prawa są ustawione prawidłowo na katalog okaldki, kombinowałem z wszystkimi rodzajami ścieżek.
metoda isPictureFile akurat nic tu nie ma do rzeczy, jeśli nie ma innych możliwości błędu to może faktycznie chodzi o prawa do katalogu temp tyle że nie jest to mój serwer i pewnie będzie trzeba przeprowadzić "batalię" z adminem, chyba że ma ktoś jeszcze jakieś inne koncepcje?
drPayton
Może to być również kwestia safe mode...
blooregard
Nie, to klasycznie przypomina mi to, co napisałem w pierwszej odpowiedzi, czyli problem z "tmp". Też się tak dziwnie ujawniał, wszystko wskazywało na katalog docelowy, a rozbiło się o tempa. No chyba, że u Ciebie akurat co innego jest problemem.
nevt
tu nie chodzi o tmp. warning ewidentnie wskazuje na problem z utworzeniem pliku '../okladki/p3.jpg'

czy przypadkiem twój katalog 'okladki' nie jest podkatalogiem w stosunku do katalogu w którym wykonuje ci się ten skrypt? a ty wywołujesz z nazwą '../okladki/p3.jpg', czyli odwołujesz się do katalogu równoległego do tego ze skryptem. dlatego w moim przykładzie kilka postów wyżej jest ścieżka './okladki' - jedna kropka odwołuje się do bieżącego katalogu, a dwie kropki do nadrzędnego.

czyli jeżeli masz strukturę katalogów:

/okladki/
|_ p3.jpg
/katalog_skryptu/
|_ skrypt.php

to poprawna jest twoja wersja z '..' na początku ścieżki, ale jeżeli

/katalog_skryptu/
|_ okladki/
| |_p3.jpg
|_ skrypt.php

to poprawna jest wersja z '.' na początku ścieżki
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.