Upload et renommer fichier PDF

Mammouth du PHP | 620 Messages

24 oct. 2016, 16:58

Bonjour,
j'essai de faire un petit script qui me permettra de mettre en ligne un fichier PDF qui sera renommer lors de Upload en un nom unique.

Pour le moment j'ai ça mais rien ne s'Upload....

Code : Tout sélectionner

<?php if(isset($_POST['go']) && is_uploaded_file($_FILES['fichier']['tmp_name'])){ var_dump($_FILES['fichier']['tmp_name']); } ?> <form action="<?php $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="POST"> <input type="file" name="fichier"> <input type="submit" name="go" value="Envoyer" /> </form> <?php if(isset($_POST['go']) && is_uploaded_file($_FILES['fichier']['tmp_name'])){ $repertoireDestination = "../../gazette/"; $infos = new finfo(FILEINFO_MIME); $type = $infos->file($_FILES['fichier']['tmp_name']); //extraction du type MIME $mime = substr($type, 0, strpos($type, ';')); if($mime === 'application/pdf'){ // c'est un PDF var_dump($info); //on renomme le fichier en nom unique $nomDestination = "gazette.pdf"; move_uploaded_file($_FILES["fichier"]["tmp_name"], $repertoireDestination.$nomDestination); }else{ // ce n'est pas un PDF print "erreur"; } } ?>
lorsque je clique sur Envoyer j'ai un message "string(14) "/tmp/phpj5TRhI"" qui s'affiche au dessus de mon formulaire et un NULL juste en dessous du formulaire

Mammouth du PHP | 2703 Messages

24 oct. 2016, 17:17

var_dump($info);
il n'y a pas de variable $info mais $infos.

Mammouth du PHP | 620 Messages

24 oct. 2016, 17:57

merci. maintenant j'ai ce message :
string(14) "/tmp/php6QWFGY"
object(finfo)#1 (0) { }

Mammouth du PHP | 2703 Messages

24 oct. 2016, 18:45

teste ce que retourne move_uploaded_file

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

25 oct. 2016, 14:57

Bonjour,

Quand tu déplaces le fichier du répertoire temporaire vers le répertoire de destination, tu donnes comme chemin cible : " $repertoireDestination.$nomDestination ". Pour $repertoireDestination tu as bien une valeur, mais quel nom php est-il sensé donner à ton fichier ?

Tester le retour de move_upload_file est en général un bon indicateur.
Retourne TRUE en cas de succès.

Si filename n'est pas valide, rien ne se passe, et move_uploaded_file() retournera FALSE.

Si filename est un fichier téléchargé, mais que pour une raison quelconque, il ne peut être déplacé, rien ne se passe, et move_uploaded_file() retourne FALSE. De plus, une alerte sera affichée.
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...