[RESOLU] uploader un fichier dans 2 repertoires

Eléphanteau du PHP | 36 Messages

22 avr. 2017, 16:27

Bonjour,

Est-ce que vous pourriez m'aider? je n'arrive pas à uploader un fichier dans 2 repertoires différents.

Cela fonctionne correctement pour uploader dans le premier repertoire "corrective" mais pas dans le second "améliorations"
<?php

if( isset($_POST['formulairesuiviFA']) ) // si formulaire soumis 
{
    $content_dir = "../doc-qualite/actions/corrective/"; // 1er dossier où sera déplacé le fichier
    $content_dir1 = "../doc-qualite/actions/améliorations/"; // 2ieme dossier où sera déplacé le fichier

    $tmp_file = $_FILES['fichier']['tmp_name'];
	$tmp_test = $_FILES['fichier']['name'];

    if( !is_uploaded_file($tmp_file) )
    {
        exit("Le fichier est introuvable $tmp_test !");
    }

    // on copie le fichier dans le dossier de destination
    $name_file = $_FILES['fichier']['name'];

    if( !copy($tmp_file, $content_dir . $name_file) )
    if( !copy($tmp_file, $content_dir1 . $name_file) )
    {
        exit("Impossible de copier le fichier dans $content_dir");
    }

    echo "Le fichier a bien été uploadé";
}

?>
Merci d'avance,

Paolino

Mammouth du PHP | 2703 Messages

22 avr. 2017, 16:32

if( !copy($tmp_file, $content_dir . $name_file) )
le déplacement fonctionne donc copy retourne true, donc cela ne rentre pas dans le if, donc cela n'exécute pas le second copy.

Eléphanteau du PHP | 36 Messages

22 avr. 2017, 17:42

Ok merci de ton aide. il faudrait que je corrige comment pour que cela fonctionne ?

paolino

Eléphanteau du PHP | 36 Messages

23 avr. 2017, 19:14

Bonjour,

personne ne peut corriger mon code pour que cela fonctionne ? je peux mettre 2 répertoires de destination dans le même if ?

je ne vois pas comment faire...

merci d'avance de votre aide.

paolino

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

23 avr. 2017, 23:58

Bonjour,

Nous sommes là pour t'aider à le faire mais pas pour le faire à ta place.

Or1 t'a indiqué où était l'erreur.
Qu'as-tu essayé pour faire une correction à ce niveau ? Quels sont les messages d'erreurs que tu as rencontrés ?
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 36 Messages

25 avr. 2017, 19:02

Bonjour,

j'ai essayé depuis cela :
<?php

if( isset($_POST['formulairesuiviFA']) ) // si formulaire soumis 
{
    $content_dir = "../doc-qualite/actions/corrective/"; // 1er dossier où sera déplacé le fichier
    $content_dir1 = "../doc-qualite/actions/améliorations/"; // 2ieme dossier où sera déplacé le fichier

    $tmp_file = $_FILES['fichier']['tmp_name'];
  $tmp_test = $_FILES['fichier']['name'];

    if( !is_uploaded_file($tmp_file) )
    {
        exit("Le fichier est introuvable $tmp_test !");
    }

    // on copie le fichier dans le dossier de destination
    $name_file = $_FILES['fichier']['name'];

    if( !copy($tmp_file, $content_dir . $name_file&&$content_dir1. $name_file) )

    {
        exit("Impossible de copier le fichier dans $content_dir");
    }

    echo "Le fichier a bien été uploadé";
}

?>
mais cela n'a rien changé sauf qu'il n'upload même plus dans le premier répertoire car je pense qu'il ne trouve plus de non de repertoire correct.

Je bloque toujours...

il faudrait certainement que je réalise 2 copy puis 1 move_uploaded_file mais je n'y parviens pas...

un peu d'aide pour un newbie du php serait toujours la bien venue.

Merci d'avance,

paolino

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

26 avr. 2017, 09:01

salut,

il faut avant tout être logique !
si tu regarde bien la doc, tu utilise move_uploaded_file pour déplacer ton fichier.
tu veux une copie ? tu utilises ensuite la fonction copy.
tu connais les deux fonctions il n'y a ni piège ni difficulté.
if(move_uploaded_file(...))  [
if(!copy ( ...)){
// message d'erreur
}
}else {
// message d'erreur
}
@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 36 Messages

29 avr. 2017, 07:41

Bonjour,

je vous remercie pour votre aide. Vous aviez raison, la solution était devant mes yeux.

Voici la correction apportée, le fichier se déplace dans la premier répertoire puis je le copie dans le second.
<?php

if( isset($_POST['formulairesuiviFA']) ) // si formulaire soumis (move_uploaded_file)
{
    $content_dir = "../doc-qualite/actions/corrective/"; // 1er dossier où sera déplacé le fichier
    $content_dir1 = "../doc-qualite/actions/amélioration/";

    $tmp_file = $_FILES['fichier']['tmp_name'];
	$tmp_test = $_FILES['fichier']['name'];

    if( !is_uploaded_file($tmp_file) )
    {
        exit("Le fichier est introuvable $tmp_test !");
    }

    // on copie le fichier dans le dossier de destination
    $name_file = $_FILES['fichier']['name'];

    if(!move_uploaded_file($tmp_file, $content_dir . $name_file))
 
    {
        exit("Impossible de copier le fichier dans $content_dir");
    }

    echo "Le fichier a bien été uploadé";

    if(!copy($content_dir . $name_file, $content_dir1 . $name_file))
 
    {
        exit("Impossible de copier le fichier dans $content_dir1");
    }

    echo "Le fichier a bien été uploadé";

}


?>