Probleme php : move_uploaded_file

Résolu
Bonjour,

J'ai trouvé ce code php qui permet normalement de uploder une image !
J'ai fait un copier collé du code en changeant le nom de la base de donnée et le repertoire de destination (de l'image).

Quand je lance le code sur Internet, j'obtiens les erreurs suivantes :

Warning: move_uploaded_file(avatars/12.jpg): failed to open stream: No such file or directory in /home/u699215262/public_html/editionprofil2.php on line 43

Warning: move_uploaded_file(): Unable to move '/tmp/phpO4T9Ij' to 'avatars/12.jpg' in /home/u699215262/public_html/editionprofil2.php on line 43

Merci de bien vouloir m'aider !

Cordialement
Florian

<?php
if(isset($_FILES['avatar']) AND !empty($_FILES['avatar']['name'])) {
$tailleMax = 2097152;
$extensionsValides = array('jpg', 'jpeg', 'gif', 'png');
if($_FILES['avatar']['size'] <= $tailleMax) {
$extensionUpload = strtolower(substr(strrchr($_FILES['avatar']['name'], '.'), 1));
if(in_array($extensionUpload, $extensionsValides)) {
$chemin = "/membres/avatars/".$_SESSION['id'].".".$extensionUpload;
$resultat = move_uploaded_file($_FILES['avatar']['tmp_name'], $chemin);
if($resultat) {
$updateavatar = $bdd->prepare('UPDATE liste_clients SET avatar = :avatar WHERE id = :id');
$updateavatar->execute(array(
'avatar' => $_SESSION['id'].".".$extensionUpload,
'id' => $_SESSION['id']
));
header('Location: profil2.php?id='.$_SESSION['id']);
} else {
$msg = "Erreur durant l'importation de votre photo de profil";
}
} else {
$msg = "Votre photo de profil doit être au format jpg, jpeg, gif ou png";
}
} else {
$msg = "Votre photo de profil ne doit pas dépasser 2Mo";
}
}
?>

1 réponse

  1. Modérateur
    Bonjour,

    Dans ton code, remplaces les lignes
    $chemin = "/membres/avatars/".$_SESSION['id'].".".$extensionUpload;
    $resultat = move_uploaded_file($_FILES['avatar']['tmp_name'], $chemin);
    


    par :
    
    $chemin = "/membres/avatars/".$_SESSION['id'].".".$extensionUpload;
    
    if(!is_dir($chemin) || !is_writable($chemin)){
     echo "<br>Erreur: <br>Le chemin << $chemin >> n'existe pas ou ne dispose pas des droits necessaires";
    }else{
     $fileToMove = !empty($_FILES['avatar']['tmp_name']) ? $_FILES['avatar']['tmp_name'] : NULL;
     if($fileToMove){
       $resultat = move_uploaded_file($fileToMove, $chemin);
     }else{
      echo "<br> Erreur, aucun fichier à déplacer !";
     }
    }
    
    

    1. Merci beaucoup !

      Mais pouvez-vous me dire exactement ce que ca veut dire en Français ?

      Le navigateur affiche "Erreur:
      Le chemin << /membres/avatars/12.jpg >> n'existe pas ou ne dispose pas des droits necessaires"

      Merci de votre rapidité.
      Florian
    2. Modérateur
      @FlorianJ29Ben... exactement ce qui est ecrit....
      Le répertoire n'existe pas. ...
      Ou tu n'as pas les droits suffisants pour y écrire. ..
    3. Le dossier membre et le dossier avatars existent ! Mais il faut uploder le fichier de l'utilisateur dans ce dossier. Et le fichier s’appellera : id de l'utilisateur et l'extensions.

      Merci encore,
      Florian
    4. Modérateur
      @FlorianJ29Ben non.. le chemin vers ton dossier n'est visiblement pas bon.... verifie le !!
    5. Le chemin d’accès de mes documents est : C:\Users\******\Documents\*******\HTML\membres\avatars

      Dois-je l'écrire entièrement ?

      Merci d'avance