Uploader un fichier vers deux dossiers différents ?
Résolu
blizzer
Messages postés
11
Statut
Membre
-
Danelectro Messages postés 1844 Date d'inscription Statut Membre Dernière intervention -
Danelectro Messages postés 1844 Date d'inscription Statut Membre Dernière intervention -
Bonjour
Je souhaiterais savoir quelles modifications je dois apporter à mon code ci-dessous pour que ce dernier upload un fichier vers deux destinations différents .
Merci d'avance
Je souhaiterais savoir quelles modifications je dois apporter à mon code ci-dessous pour que ce dernier upload un fichier vers deux destinations différents .
Merci d'avance
<?php
if( isset($_POST['upload']) ) // si formulaire soumis
{
$content_dir = '/var/www/html/blabla/fichiers/'; // dossier où sera déplacé le fichier
$tmp_file = $_FILES['fichier']['tmp_name'];
if( !is_uploaded_file($tmp_file) )
{
exit("Le fichier est introuvable");
}
// on vérifie maintenant l'extension
$type_file = $_FILES['fichier']['type'];
// on copie le fichier dans le dossier de destination
$name_file = $_FILES['fichier']['name'];
//on remplace, dans le nom du fichier, les espaces par des underscores
$new_name_file=str_replace(' ','_',$name_file);
if( !move_uploaded_file($tmp_file, $content_dir . $new_name_file) )
{
exit("Impossible de copier le fichier dans $content_dir");
}
header("location:http://blalbla.com/");
}
?>
1 réponse
-
Salut,
Il suffit de copier le fichier fraichement uploadé vers une autre destination.
http://php.net/manual/fr/function.copy.php
Donc rajoute un else {} au dernier if-
je viens d'essayer mais ça ne marche pas car en faite j'ai un message d'erreur qui s'affiche me disant que je ne peux pas Uploader ,serait il possible que tu me modifies mon code car je ne comprend pas trop ce que tu veux me dire , désolé je ne suis pas très forts en programmation j'ai déjà récupérer ce code ailleurs donc c'est compliqué . Les deux dossier de destinations sont /fichiers et /2015. Merci d'avance de ton aide .
-
-
Pour ce qui en est de l'upload simple ( 1 fichier vers 1 dossier ) c'est réglé , ce que je ne comprend pas c'est à quel moment le fichier est diriger vers un dossier sur le serveur , je me doute que c'est au moment du move . J'arrive très bien a l'envoyer vers un dossier ( /fichier) mais pas vers deux .
-
C'est effectivement cette ligne qui est un peu délicate :
if( !move_uploaded_file($tmp_file, $content_dir . $new_name_file) )
En gros la fonction move_uploaded_file() déplace bien le fichier, et renvoi un code d'erreur, TRUE (vrai) ou FALSE (faux). Ce code est interprété par le if, donc c'est le code d'erreur de la fonction qui régit la condition. Si le transfert s'est bien passé, move_uploaded_file() renvoi TRUE, sinon FALSE.
Avec le "!" qui inverse la condition, ça donne en français : déplace le fichier, et si ça s'est mal passé écrit "Impossible de copier le fichier dans $content_dir".
Donc si tu mets un else après ce if, il s'exécutera seulement si le transfert s'est bien passé. Si c'est le cas on a envie de copier le fichier dans un autre répertoire, on va donc ajouter :
else
{
//copier dans /2015
copy($content_dir . $new_name_file, "/2015/" . $new_name_file);
} -
-