[RESOLU] enregistrement

Eléphant du PHP | 166 Messages

07 juin 2017, 22:11

Bonjour
Voici mon code :

Code : Tout sélectionner

<form method="post" enctype="multipart/form-data" action=""> <input type="file" name="fichier" multiple="multiple"><br> Nouveau nom : <input type="text" name="renom" ><br> Dossier de destination : <input type="text" name="dir" size="12"><br> <input type="submit" name="upload" > </form> <?php if( isset($_POST['upload']) ) // si formulaire soumis { /*$content_dir = 'images/'; // dossier où sera déplacé le fichier*/ /**************************************************/ //on transforme en fichier temporaire xxxx.tmp $tmp_file = $_FILES['fichier']['tmp_name']; if( !is_uploaded_file($tmp_file) ) { exit("Le fichier est introuvable"); } /**************************************************/ // on vérifie l'extension $type_file = $_FILES['fichier']['type']; if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif')) { exit("Le fichier n'est pas une image"); } /**************************************************/ // On créer un dossier if(isset($_POST['upload']))//si le formulaire est soumis { if (!empty($_POST['dir'])) { //si le champ name n'est pas vide $dossier = $_POST['dir']; //si le dossier n'existe pas déjà if(!file_exists($dossier)) { mkdir($dossier,0777,true); echo "Le Dossier -- ".$dossier." -- a bien ete cree"; } } else { echo "Veuillez rentrer un nom"; } } /**************************************************/ // on copie le fichier dans le dossier de destination $name_file = $_FILES['fichier']['name']; if( !move_uploaded_file($tmp_file, /*$content_dir*/ $dossier . $name_file) ) { exit("Impossible de copier le fichier dans $dossier"); } echo "Le fichier a bien été uploadé"; } ?>
Grace a mon formulaire, je choisi une image et ensuite je créer un dossier de destination. Mais lorsque je valide le formulaire, mon image est enregistrer en dehors de mon dossier de destination (qui lui a bien été crée au passage, mais reste vide ????)

Mammouth du PHP | 2703 Messages

07 juin 2017, 22:55

$dossier . $name_file
il manque le séparateur entre répertoire et nom de fichier.

Eléphant du PHP | 166 Messages

08 juin 2017, 21:56

ok vue merci

Code : Tout sélectionner

if( !move_uploaded_file($tmp_file, "$dossier/ $name_file") )

Mammouth du PHP | 1967 Messages

09 juin 2017, 09:32

a mon avis l'espace après le slash va poser des soucis

je te proposerai cette syntaxe
if( !move_uploaded_file($tmp_file, $dossier . "/" . $name_file) )
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube