if( isset($_POST['upload']) ) // si formulaire soumis
{
$content_dir = 'upload/'; // dossier où sera déplacé le fichier
$tmp_file = $_FILES['fichier']['tmp_name'];
if( !is_uploaded_file($tmp_file) )
{
print("Le fichier est introuvable");
exit("Le fichier est introuvable");
}
// on vérifie maintenant l'extension
$type_file = $_FILES['fichier']['type'];
if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )
{
print("Le fichier n'est pas une image");
exit("Le fichier n'est pas une image");
}
if( preg_match('#[\x00-\x1F\x7F-\x9F/\\\\]#', $name_file) )
{
exit("Nom de fichier non valide");
}
// on copie le fichier dans le dossier de destination
$name_file = $_FILES['fichier']['name'];
if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
print("Impossible de copier le fichier dans $content_dir");
exit("Impossible de copier le fichier dans $content_dir");
}
print "Le fichier a bien été uploadé";
echo "Le fichier a bien été uploadé";
}
else
{
print("error");
}
?>
Je sais que je doit pas mettre print("") et exit("") a la suite enfin je croit ;) mais voici l'erreur qui s'affiche lors de l'envoi d'une image :
Warning : move_uploaded_file(upload/test.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/tt/www/source_tv/upload.php on line 31
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpjWtAe7' to 'upload/test.jpg' in /home/tt/www/source_tv/upload.php on line 31 Impossible de copier le fichier dans upload/Impossible de copier le fichier dans upload/
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 26 janv. 2008 à 23:14
Hello,
la fonction a un problème avec ton répertoire "upload", à priori.
Il ne doit pas exister. En tous cas, pas à ce niveau par rapport à ton script (même niveau que ton script).
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 27 janv. 2008 à 21:34
Généralement, le probleme vient du fait que le dossier n'ait pas les bons acces en écriture.
Deux possibilités
Tu met le chmod en 777, pas du tout sécurisé mais parfois la seule solution. Si c'est ton propre serveur (mutualisé ou perso), tu peux donner comme nom d'utilisateur (ou de groupe, ou des deux) du même que celui qui lance apache (généralement, c'est nobody ou www-data), avec un chmod 744 ou 774 comme ca pas de soucis niveau sécurité.
Mais cela dépends bien sur de ton pouvoir sur le serveur (: