05.07.2016, 16:19
Hej!
Wybaczcie, że tak skąpo opisane - jestem w trakcie przerwy w pracy, a problem nie daje mi spokoju i wierci mi dziurę w głowie.
Jestem w trakcie tworzenia małego skryptu / cms'a w celach dydaktycznych i próbuje utworzyć sobie klasę do uploadu plików (tak wiem, że są gotowe biblioteki).
Po sprawdzeniu tymczasowych warunków etc dochodzimy do tego punktu:
W ten sposób wszystko ładnie działa. Natomiast gdy zamiast copy() użyjemove_uploaded_file() plik także pojawia się w odpowiednim folderze z odpowiednio zmienioną nazwą, jedyna różnica to, że zwraca false zamiast $path . Skoro zwraca false to zakładałbym, że instrukcja się nie wykonała... z tym, że jak wspomniałem - wykonała się perfekcyjnie.
Z dokumentacji:
Oba przypadki mi tu nie pasują do mojej sytuacji.
Zmienna $fileNameTmp to po prostu $_FILES['img']['tmp_name'], natomiast path = to ścieżka do folderu z nową nazwą pliku, coś w ten deseń:
Jedyne co mi przychodzi do głowy, to że zmiana nazwy powoduje ten błąd, ale dlaczego mimo to funkcja działa - nie mam pojęcia.
Próbowałem googlować, konkretnych rozwiązań brak, a te które są nie pomagają.
Wybaczcie, że tak skąpo opisane - jestem w trakcie przerwy w pracy, a problem nie daje mi spokoju i wierci mi dziurę w głowie.
Jestem w trakcie tworzenia małego skryptu / cms'a w celach dydaktycznych i próbuje utworzyć sobie klasę do uploadu plików (tak wiem, że są gotowe biblioteki).
Po sprawdzeniu tymczasowych warunków etc dochodzimy do tego punktu:
Kod PHP:
if(copy($fileNameTmp, $path))
{
return $path;
} else {
return false;
}
W ten sposób wszystko ładnie działa. Natomiast gdy zamiast copy() użyje
Z dokumentacji:
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.
Oba przypadki mi tu nie pasują do mojej sytuacji.
Zmienna $fileNameTmp to po prostu $_FILES['img']['tmp_name'], natomiast path = to ścieżka do folderu z nową nazwą pliku, coś w ten deseń:
Kod PHP:
$temp = explode(".", $_FILES['img']['name']);
$newfilename = round(microtime(true)) . '.' . end($temp);
$path = 'upload/' . $newfilename;
if(copy($fileNameTmp, $path))
{
return $path;
} else {
return false;
}
Jedyne co mi przychodzi do głowy, to że zmiana nazwy powoduje ten błąd, ale dlaczego mimo to funkcja działa - nie mam pojęcia.
Próbowałem googlować, konkretnych rozwiązań brak, a te które są nie pomagają.