Probleme php : move_uploaded_file

Résolu
FlorianJ29 Messages postés 68 Date d'inscription   Statut Membre Dernière intervention   -  
FlorianJ29 Messages postés 68 Date d'inscription   Statut Membre Dernière intervention   -
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";
}
}
?>
A voir également:

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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 !";
 }
}


0
FlorianJ29 Messages postés 68 Date d'inscription   Statut Membre Dernière intervention   15
 
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
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > FlorianJ29 Messages postés 68 Date d'inscription   Statut Membre Dernière intervention  
 
Ben... exactement ce qui est ecrit....
Le répertoire n'existe pas. ...
Ou tu n'as pas les droits suffisants pour y écrire. ..
0
FlorianJ29 Messages postés 68 Date d'inscription   Statut Membre Dernière intervention   15
 
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
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > FlorianJ29 Messages postés 68 Date d'inscription   Statut Membre Dernière intervention  
 
Ben non.. le chemin vers ton dossier n'est visiblement pas bon.... verifie le !!
0
FlorianJ29 Messages postés 68 Date d'inscription   Statut Membre Dernière intervention   15
 
Le chemin d’accès de mes documents est : C:\Users\******\Documents\*******\HTML\membres\avatars

Dois-je l'écrire entièrement ?

Merci d'avance
0