Problème avec move_uploaded_file

Voici, j'ai un petit souçis avec la function move_uploaded_file.

Premier code d'erreur
Warning: move_uploaded_file(upload\profil\picture\c:\wamp\tmp\php9171.tmp): failed to open stream: Invalid argument in C:\wamp\www\natreex.com\includes\post.php on line 219


Deuxième code d'erreur
Warning: move_uploaded_file(): Unable to move 'C:\wamp\tmp\php9171.tmp' to 'upload\profil\picture\c:\wamp\tmp\php9171.tmp' in C:\wamp\www\natreex.com\includes\post.php on line 219


Maintenant, voici mon code :

if(!$_FILES['photo']['error']){
$new_file_name = strtolower($_FILES['photo']['tmp_name']); //rename file
if ($_FILES['photo']['type'] == "image/png" || $_FILES['photo']['type'] == "image/jpeg"){
if($_FILES['photo']['size'] <= (10240000)){
move_uploaded_file($_FILES['photo']['tmp_name'], 'upload/profil/picture/'.$new_file_name);
$message = 'Congratulations! Your file was accepted.';
} else {

}
} else {

}
} else{

}


Je sais qu'il y a une erreur, j'ai essayer pendant une demi journée de l'arranger, mais sans rien. J'ai déjà fait des téléversement de fichier via PHP autrefois, mais jamais eu cette erreur.

Pour infos, je travail sur un serveur WAMP.

1 réponse

  1. Modérateur
    Bonjour,

    Peux tu essayer ceci :
    $f_error = isset($_FILES['photo']['error']) ? $_FILES['photo']['error'] : NULL;
    $f_type = isset($_FILES['photo']['type']) ? $_FILES['photo']['type']: NULL;
    $f_size = isset($_FILES['photo']['size']) ? $_FILES['photo']['size']: NULL;
    $tmp_name = !empty($_FILES['photo']['tmp_name']) ? $_FILES['photo']['tmp_name']: NULL;
    $new_file_name = !empty($_FILES['photo']['name']) ? strtolower($_FILES['photo']['name']) : NULL;
    
    if(!$f_error){
       if ($f_type == "image/png" || $f_type == "image/jpeg"){
          if($f_size <= (10240000)){
            move_uploaded_file($tmp_name, 'upload/profil/picture/'.$new_file_name);
            $message = 'Congratulations!  Your file was accepted.';
          }
       }
    }