IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Upload] Upload via formulaire


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut [Upload] Upload via formulaire
    Bonjour,

    J'essaie de copier un fichier dans un répertoire grâce à un formulaire mais sans succès...

    Voici mon code HTML
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form name = "form" enctype="multipart/form-data" action = "./admin_newsletters.php?section=add&action=add" method = "post" onSubmit = "return checkForm()">
    <input type = "hidden" name = "MAX_FILE_SIZE" value = "30000" />
    <input type = "file" name = "file"><br /><br />
    <img src = "./img/accept.gif"/> <input type = "submit" value = "Ajouter">
    </form>

    Et mon code PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $uploadDir = '../www/CRIPEL/newsletters/';
    $fileName = $_FILES["file"]["name"];
     
    if(is_uploaded_file($_FILES["file"]["name"])) {
    	move_uploaded_file($fileName,$uploadDir);
    }
    J'ai essayé en spécifiant le chemin à partir du dossier de stockage temporaire et à partir de ma page php, résultat identique, rien ne se passe...
    Je précise que je travaille en local avec WAMP et que l'upload est autorisé dans le php.ini et pour la taille c'est ok également....

    ça fait deux heures que je planche là dessus mais pas moyen, j'ai besoin de vous

    Edit : Je viens de me rendre compte que le dossier de destination était en lecture seule mais après correction le problème reste inchangé...

    Edit2 : Je viens de tester avec un echo, et le code dans le if n'est pas exécuté, je ne sais pas pourquoi
    Dernière modification par julp ; 19/03/2007 à 19h23.

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 440
    Points : 15 814
    Points
    15 814
    Par défaut
    tu ne testais pas le bon nom, il faut tester "tmp_name" comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $uploadDir = '../www/CRIPEL/newsletters/';
    $fileName = $_FILES['file']['name'];
     
    if(is_uploaded_file($_FILES['file']['tmp_name'])) {
        move_uploaded_file($_FILES['file']['tmp_name'], "$uploadDir$fileName");
    }

  3. #3
    Invité
    Invité(e)
    Par défaut
    Il y a du changement ! ça marche pas mais il se passe quelque chose ^^

    Alors voici mon code php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $uploadDir = '../www/CRIPEL/newsletters/';
    $fileName = $_FILES["file"]["tmp_name"];
    echo $fileName;
     
    if(is_uploaded_file($fileName)) {
    	move_uploaded_file($fileName,$uploadDir);
    }
    Qui me génère cette belle erreur
    c:/Program Files/wamp/tmp\php674.tmp
    Warning: move_uploaded_file(../www/CRIPEL/newsletters/) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\Program Files\wamp\www\CRIPEL\admin_newsletters.php on line 19

    Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'c:/Program Files/wamp/tmp\php674.tmp' to '../www/CRIPEL/newsletters/' in C:\Program Files\wamp\www\CRIPEL\admin_newsletters.php on line 19
    Que je pige pas vraiment

    Si je change le $uploadDir pour './newsletter/'
    J'obtiens ceci :
    c:/Program Files/wamp/tmp\php677.tmp
    Qui est la réponse à mon echo
    Je n'ai plus d'erreur dans ce cas, mais le fichier n'est toujours pas copié dans mon répertoire newsletter...

    Tu sais pourquoi ? je sens que j'approche du but...
    Dernière modification par julp ; 19/03/2007 à 23h24.

  4. #4
    Membre actif Avatar de lun4t1k
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    276
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 276
    Points : 274
    Points
    274
    Par défaut
    J'avais ce genre d'erreur (je dis bien ce genre)
    tu peux essayer de ne pas mettre le chemin absolu mais plutot relatif, avec la variable d'environnement $_SERVER['DOCUMENT_ROOT'].


    C'est peut etre pas ça, mais une fois sur le net ca évite pas mal d'e**erdes...

  5. #5
    Invité
    Invité(e)
    Par défaut
    ça marche enfin ...
    En fait, honte à moi ^^, mathieu m'avait donné la bonne réponse.
    J'avais oublié de concaténer la variable contenant le chemin avec le nom du fichier...

    A force de passer ses journées dans le code, on voit plus ses erreurs...
    Une bonne nuit de sommeil, voilà ce qu'il me fallait

    Merci à vous deux

  6. #6
    Invité
    Invité(e)
    Par défaut
    Je remonte ce topic car j'ai un nouveau problème.
    En local, tout fonctionne bien. Quand je mets le site en ligne, ça ne marche plus.

    Si j'ai bien compris le système, entre le temps où j'envoie le formulaire et celui où je fait un move_uploaded_file, le fichier est stocké dans un répertoire temporaire.

    Donc il faut que je trouve ce répertoire sur le serveur...
    Le problème c'est que je vois rien

    Voici, la racine du serveur


    Une piste ?

  7. #7
    Membre actif Avatar de lun4t1k
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    276
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 276
    Points : 274
    Points
    274
    Par défaut
    Une fonction non supportée par ton hébergeur?
    Une mauvaise indication des chemins?
    poste ton code et dit nous où ca plante...

  8. #8
    Invité
    Invité(e)
    Par défaut
    Voici donc le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $uploadDir = '../www/CRIPEL/newsletters/';
    $fileName = $_FILES["file"]["name"];
     
    $ext = substr($fileName,strrpos($fileName, "."));
    $finalFileName = $_POST["month"].$_POST["year"].$ext;
     
    if(!file_exists('./newsletters/'.$finalFileName)) {
    	if(is_uploaded_file($_FILES["file"]["tmp_name"])) {
    		if (eregi("^ph", $ext))
    			die("Les fichiers en .ph* ne sont pas autorisés.");
                    move_uploaded_file($_FILES["file"]["tmp_name"],$uploadDir.$finalFileName);
    	}
    Et voici l'erreur générée

    Warning: move_uploaded_file(../www/CRIPEL/newsletters/JANUARY2001.pdf): failed to open stream: No such file or directory in /home/ftpcripel/www/CRIPEL/admin_newsletters.php on line 32

    Warning: move_uploaded_file(): Unable to move '/tmp/phpbqAFNY' to '../www/CRIPEL/newsletters/JANUARY2001.pdf' in /home/ftpcripel/www/CRIPEL/admin_newsletters.php on line 32
    A savoir que le fichier php est situé dans le dossier CRIPEL que l'on peut voir sur l'image que j'ai posté plus haut
    Tu vois la raison de cette erreur ?
    Dernière modification par julp ; 20/04/2007 à 15h05.

Discussions similaires

  1. Erreur upload fichier via formulaire
    Par Telecaster dans le forum Langage
    Réponses: 2
    Dernier message: 05/02/2009, 12h30
  2. [Upload] Upload d'un formulaire
    Par gabi27685 dans le forum Langage
    Réponses: 1
    Dernier message: 16/03/2008, 11h11
  3. [Upload] Upload de plusieurs fichiers via formulaire
    Par seb67110 dans le forum Langage
    Réponses: 2
    Dernier message: 02/05/2007, 12h55
  4. Réponses: 1
    Dernier message: 31/10/2005, 10h33
  5. [Web] Upload fichier via formulaire HTTP
    Par nik00s dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 11/08/2005, 13h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo