Problème d'UPLOAD php (move_uploaded_file)

Fermé
Liana - 10 févr. 2023 à 15:17
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 10 févr. 2023 à 15:36

Bonjour bonjour mesdames messieurs les experts, 

Je suis en formation et je tente (et je me casse les dents pour le moment) d'uploader une image via un form dans mon répertoire de mon site (pour ensuite l'incrémenter dans ma base de données). 

Après moultes arrachages de cheveux et autres recherches dans tous les sens je suis bloquée !

Voici mon code : 

//Vérification des champs : 

if(!empty($_POST['titre']) && !empty($_POST['auteur']) && !empty($_POST['contenu'])){  
    if($_FILES['photo']['error']){
        switch($_FILES['photo']['error']){
            case 1 : //Upload_ERR_INI_SIZE cf manuel php
                echo 'Nous demandons un fichier plus petit !';
                break; //comme exit
                
            case 2 : // UPLOAD_ERR_FORM_SIZE
                echo 'Le fichier est beaucoup trop grand pour un formulaire !';
                break;
                
            case 3 : //UPLOAD_ERR_PARTIAL
                echo 'Le téléchargement a été interrompu !';
                break;
            
            case 4 : //UPLOAD_ERR_NO_FILE
                echo 'Ah désolée mais ce fichier est vide';
                break;
        }//fin du switch
    }  
    
    var_dump($_FILES);
    
    // vérifions qu'elle a bien les bons paramètres : 
    if((isset($_FILES['photo']['name']) && ($_FILES['photo']['error']==UPLOAD_ERR_OK))){
        //création d'une variable pour la déplacer dans notre serveur :
        $chemin_destination = '/www/images/';
        $img_name = $_FILES['photo']['tmp_name'];
        $name = basename($_FILES['photo']['name']);

//petites vérifs
        var_dump($img_name);
        var_dump($chemin_destination);
        var_dump($name);
        //On déplace ::
        move_uploaded_file($_FILES['photo']['name'], '/www/images/'.$_FILES['photo']['name']);
         echo '<div class="alert alert-success>Votre article a bien été ajouté</div>'; 
    }
    else {echo 'Le fichier n\'est pas arrivé dans le répertoire !';}
}

$page_content = <<<EOT
<form action="" method="post" class="col-md-6 offset-md-3 mt-5" enctype="multipart/form-data">
//pleins d'input je vous mets celui qui nous intéresse : 
    <input type="file" name="photo" placeholder="Image de l'article" class="form-control" required>
    <button type="submit">Soumettre</button> 
</form>
EOT;


Windows / Edge 109.0.1518.78

1 réponse

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
10 févr. 2023 à 15:36

Bonjour

À mon avis c'est ton répertoire de destination qui n'est pas bon.

Remplace /www/images/ par images/


0