Witam,
Wysyłam zdjęcie za pomocą formularza. Formularz pomijam, oto napisany przeze mnie skrypt php:
<?php
if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
if ( $_FILES[$_SESSION['user']]['size'] <= (50*1024*1024) ) {
$fileext = explode('.', $_FILES[$_SESSION['user']]['name']); $fileext = $fileext[1];
switch (true) {
case ( $fileext == 'jpg' ) :
case ( $fileext == 'jpeg' ) :
case ( $fileext == 'png' ) :
case ( $fileext == 'gif' ) :
if ( $_FILES[$_SESSION['user']]['type'] == ('image/jpeg' || 'image/png' || 'image/gif') ) {
$uploaddir = 'users/';
$uploadfile = $uploaddir . $_SESSION['user'] . '.' . $fileext;
$moveuploadedfile = move_uploaded_file($_FILES[$_SESSION['user']]['tmp_name'], $uploadfile); if ( $moveuploadedfile ) {
$sql = "UPDATE `users` SET `imagename` = '" . $_SESSION['user'] . "." . $fileext . "' WHERE `login` = '" . $_SESSION['user'] . "'";
if ($editpic) {
echo 'Your picture has been successfully uploaded. <br />' . "n"; echo '<a href="?x=profile&a=edit">Go to edit profile</a>.' . "n"; echo $_FILES[$_SESSION['user']]['error']; } else {
echo 'There was a problem with storing picture info in mysql database. Please, try aga
in. If that does not help, contact admin. <br/>' . "n"; include_once 'inc/formpicture.php';
}
} else {
echo 'Could not store your picture. Please, try again. If that does not help, contact
admin. <br />' . "n"; include_once 'inc/formpicture.php';
}
} else {
echo 'The file type is not allowed. <br />' . "n"; include_once 'inc/formpicture.php';
}
break;
default :
echo 'The file extension is not allowed. <br />' . "n"; include_once 'inc/formpicture.php';
break;
}
} else {
echo 'File size exceeds the maximum allowed value. <br />' . "n"; include_once 'inc/formpicture.php';
}
} else {
echo 'There was a problem with uploading your picture. Please, try again. If that does
not help, contact admin. <br />' . "n"; include_once 'inc/formpicture.php';
}
} else {
include_once 'inc/formpicture.php';
}
?>
Nawet wyświetliłem error, żeby sprawdzić, co jest grane. Error daje 0, czyli że niby wszystko w porządku. Plik przeszedł wszystkie zabezpieczenia, info zapisuje się w bazie danych, ale pliku w końcowym katalogu nie ma. Z tego wnioskuję, że albo move_uploaded_file albo zadziałał, albo przeniósł mi plik nie do tego katalogu co trzeba.
Jeśli może sie to przydać, to host mam na 60free.ovh.org. Próbowałem obie wersje ścieżki:
$uploaddir = 'users/';
oraz
$uploaddir = /home/n/a/z/nazwa/www/users/
Prosze o pomoc, czemu pliku nie ma w zadanym katalogu i co zrobić, żeby był (IMG:
http://forum.php.pl/style_emoticons/default/smile.gif)
Pozdrawiam
Ten post edytował pentel 14.07.2007, 19:01:35