probleme upload fichier php

Eléphanteau du PHP | 19 Messages

09 août 2009, 12:20

bonjour a tous ;o)

voila depuis hier soir que je galere!!!!!!!!!!!
ça m'énerve ! je vais vous expliquer :

je veux faire une page upload sur mon site, jusque là, pas de pb........
voici un code type d'upload :



<?php
if(isset($_FILES['avatar']))
{ 
     $dossier = 'upload/';
     $fichier = basename($_FILES['avatar']['name']);
     if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
     {
          echo 'Upload effectué avec succès !';
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo 'Echec de l\'upload !';
     }
}
?>




mais là ou ça se complique..... :
je voudrais que $dossier soit la valeur d'une variable qui est $nvo.
mais si je mets : $dossier = $nvo ;
le fichier uploadé ne va pas se mettre dans un dossier mais direct où se trouve la page upload.php en renomant le fichier (exemple : fichier a uploader : test.jpg résulat : $nvotest.jpg)

Ce que je veux, c'est que test.jpg arrive dans le dossier $nvo (qui a été crée précédement).
vous me direz : "il suffit de mettre le "/" et bien non ça ne fonctionne pas :
$dossier = $nvo/;

je ne sais pas si vous avez tout saisi........... désolé ce n'est pas facile d'expliquer !!!!!
si qq1 a une idée, je suis tout ouie!!!!!!!!!!!!! merci d'avance!

Eléphant du PHP | 209 Messages

09 août 2009, 12:44

Est-il possible de voir le code qui ne fonctionne pas, avec la ligne $dossier = $nvo ; ?

Eléphanteau du PHP | 19 Messages

09 août 2009, 13:25

donc voici le code qui ne fonctionne point :

<?php
echo $_POST['nom'] ; //je récupere la variable nom posté précédement par la methode post et je l'affiche également !
$nvo = $_POST['nom'] ; //j'affecte la variable nvo à nom (nom=nvo)

if(isset($_FILES['avatar']))
{
     $dossier = $nvo;  //dossier dans lequel le fichier doit etre uploadé (code origine : $dossier = 'upload/';)
     $fichier = basename($_FILES['avatar']['name']);
     if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
     {
          echo 'Upload effectué avec succès !';
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo 'Echec de l\'upload !';
     }
}
?>




merci d'avoir repondu ;)

Eléphant du PHP | 209 Messages

09 août 2009, 13:38

Si tu veux lui dire que nvo est un répertoire, tu dois, faire ça :
     if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier.'/'.$fichier)) 
Par contre, je ne vois pas trop pourquoi tu avais $nvotest.jpg... es-tu sûr de ne pas avoir nvotest.jpg ?

Eléphanteau du PHP | 19 Messages

09 août 2009, 14:00

oh put........!!!!! dsl!!!
toi t'es un bon !!!! ça fonctionne ! tu m'bottes, merci bcp!
non j'avais : 'contenu_de_la_variable_nvo'test.jpg qui se mettait a la racine (où se trouvait upload.php).

sinon à présent j'essai de supprimer par mon ftp le dossier crée avec l'image qui est dedans mais impossible à supprimer !
je dois obligatoirement supprimer par fichier php (car le dossier a été crée par php) ? c'est galère ça j'trouve!

en tout cas merci a toi, t'es un chef ;)

Eléphant du PHP | 209 Messages

09 août 2009, 14:25

:shock:
Bah je vais faire le travail de la modération, j'en rêvais :D

chrismim, si ton sujet est résolu merci d'utiliser la fonction « Mettre résolu » prévue à cet effet.

:priere:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

09 août 2009, 14:33

:shock:
Bah je vais faire le travail de la modération, j'en rêvais :D

chrismim, si ton sujet est résolu merci d'utiliser la fonction « Mettre résolu » prévue à cet effet.

:priere:
Modération :

Ah oui, mais non. :evil:

Tu as un bouton pour signaler un message qui mérite une modération, mais merci de ne pas modérer toi même s'il te plait.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 209 Messages

09 août 2009, 17:31

:cry:

nin4
Invité n'ayant pas de compte PHPfrance

30 mars 2011, 13:19

salut tt le monde,

j'ai mi mm code au niveau de serveur mais la fonction move_uploaded_file est tjr false chai pa est ce ke le probleme au niveau de serveur ou mon code
mai voila mon code :
$file=$_FILES['img']['tmp_name'];

$newfile="image_".$id.strstr($img,".");

if(move_uploaded_file($file,'../img/img_article/'.$newfile))
{
echo $newfile;
}
}
il rentre pas dans la condition parce ke elle est tjr false

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

30 mars 2011, 17:10

salut,

a tu des messages d'erreurs (error_reporting à E_ALL|E_STRICT ) ?
a tu vérifié que tu pouvais écrire dans les répertoires ?
peut tu poster le code complet ?

@+
Il en faut peu pour être heureux ......