Page 1 sur 1

Probleme move_uploaded_file

Posté : 15 juil. 2009, 22:25
par ed_013
Bonjour,

J'ai un probleme avec cette fonction, j'ai recuperer un script qui marchait sur un de mes anciens site mais que je n'arrive plus a mettre en place sur un nouveau, je vous montre le code et le resultat


Code : Tout sélectionner

<? $uploaded=0; //Initialisation d'un variable qui autorisera ou non l'enregistrement dans la base $fichier_size = $_FILES['fichier']['size']; $fichier_name = $_FILES['fichier']['name']; $fichier_tmp = $_FILES['fichier']['tmp_name']; if($fichier_size>0) //Si le fichier a une taille { $rename=rand(0,100000); //on génère un nombre aléatoire en 0 et 100000 qui sera ajouté à la fin du nom du dossier pour éviter les conflits $rep= $_SERVER["DOCUMENT_ROOT"]."/metisgwa/data/news/"; //Répertoire où sera stocké ce fichier echo $rep."<br>"; $fichier_name = str_replace (" ", "_", $fichier_name); //On remplace les éventuels espaces dans le nom du fichier par des underscore $a = array("ä", "â", "à"); //On remplace les A avec accent par un A normal $fichier_name = str_replace ($a, "a", $fichier_name); $e = array("é", "è", "ê", "ë"); //On remplace les E avec accent par un E normal $fichier_name = str_replace ($e, "e", $fichier_name); $i = array("ï", "î"); //On remplace les I avec accent par un I normal $fichier_name = str_replace ($i, "i", $fichier_name); $o = array("ö", "ô"); //On remplace les O avec accent par un O normal $fichier_name = str_replace ($o, "o", $fichier_name); $u = array("ù", "û", "ü"); //On remplace les U avec accent par un U normal $fichier_name = str_replace ($u, "u", $fichier_name); $newfichier=$fichier_name; //On met le nom du fichier dans la variable $newfichier list($nom, $ext) = explode(".", $newfichier); //on sépare en deux le nom et l'extension $nom = $nom."_".$rename; //Au nom, on rajoute un underscore et le nombre généré $savefile= $rep.$nom.".".$ext; //On lui rajoute l'extension pour la copie dans le dossier echo $savefile."<br>"; $nom_complet = $nom.".".$ext; echo $nom_complet."<br>"; move_uploaded_file($nom_complet, $rep) or die('Impossible de copier le fichier : '.$savefile.mysql_error()); //Le fichier est déplacé dans le dossier prévu //afichage des variables saisie echo "<b>Titre du fichier : </b>".$pdf_titre."<br>"; //titre echo "<b>Description du fichier : </b>".$pdf_description."<br>"; //description echo "<b>Lien du fichier : </b>".$savefile."<br>"; //Lien //ecriture dans la base $sql_insert = "INSERT INTO pdf (pdf_titre, pdf_description, pdf_lien) VALUES ('".$pdf_titre."','".$pdf_description."','".$nom_complet."')"; $res_insert = mysql_query($sql_insert); //On passe la variable à 1 $uploaded=1; } //Sinon, si le fichier n'a pas de taille else { //Si pas de taille, la variable reste à zéro pour empêcher l'écriture dans la base echo "Le fichier n'existe pas ou la taille n'est pas valide<br>Ecriture impossible dans la base"; $uploaded=0; } ?>
et le resultat en fonction des echo placés dans le script
c:/program files/easyphp1-8/www/metisgwa/data/news/
c:/program files/easyphp1-8/www/metisgwa/data/news/tourenr_83335.gif
tourenr_83335.gif
Impossible de copier le fichier : c:/program files/easyphp1-8/www/metisgwa/data/news/tourenr_83335.gif
Quelqu'un vois d'ou ca viens ?
Je m'arrache les cheveux la :cry:

Posté : 15 juil. 2009, 22:49
par Ryle
Le premier argument de la fonction move_uploaded_file() devrait être le nom temporaire du fichier (puisque tu déplaces le fichier temporaire vers son emplacement permanent). Ce devrait donc être $fichier_tmp (ou $_FILES['fichier']['tmp_name'])

Posté : 15 juil. 2009, 22:58
par ed_013
Merci beaucoup, c'etais juste ca !!!