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 & dossier temp - Fichier introuvable


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Points : 19
    Points
    19
    Par défaut [Upload] Upload & dossier temp - Fichier introuvable
    Bonjour,

    J'ai fais une recherche sur le forum (et sur Google) pour éviter les doublons vu que les problèmes d'upload ont l'air d'être légion mais je n'ai pas trouvé d'info qui puisse m'aider.

    Voici mon problème :
    Lorsque je lance l'upload de mon fichier, le is_uploaded_file échoue. Apparemment, le fichier ne s'inscrit donc même pas dans le répertoire temporaire.

    Voici mon formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <form method="post" ENCTYPE="multipart/form-data" action="./includes/action_photo_blogposts.php">
    	<input type="hidden" name="max_file_size"  value="2048">
    	<input type="file" name="fichier">
    	<input value="Ajouter" type="submit" name="upload">
    </form>
    Mon script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    <?php
     
    if( isset($_POST['upload']) ) // si formulaire soumis
    {
        $content_dir = '../../images/blog/'; // dossier où sera déplacé le fichier
     
        $tmp_file = $_FILES['fichier']['tmp_name'];
     
        if( !is_uploaded_file($tmp_file) )
        {
            exit("Le fichier est introuvable");
        }
     
        // on vérifie maintenant 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 copie le fichier dans le dossier de destination
        $name_file = $_FILES['fichier']['name'];
     
        if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
        {
            exit("Impossible de copier le fichier dans $content_dir");
        }
     
        echo "Le fichier a bien été uploadé";
    }
    ?>
    Les lignes importantes du php_info :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    file_uploads	On
    upload_max_filesize	2M
    upload_tmp_dir	/Applications/xampp/xamppfiles/htdocs/temp
    J'utilise Xampp pour Mac OS X et mon dossier temp est en 777.

    Les localisations des divers fichiers :
    php.ini : /Applications/xampp/etc/php.ini
    formulaire : /Applications/xampp/xamppfiles/htdocs/debussy/bakovitz/includes/photos_blogposts.php
    script : /Applications/xampp/xamppfiles/htdocs/debussy/bakovitz/includes/action_photo_blogposts.php
    dossier temporaire : /Applications/xampp/xamppfiles/htdocs/temp

    le fichier php.ini tel que présenté plus haut a été modifié pour pointer vers mon dossier temp, à la base aucun dossier n'était spécifié donc j'imagine qu'il pointait vers ce dossier :
    /Applications/xampp/xamppfiles/temp

    Mais ça ne marchait pas non plus

    A mon avis c'est un problème de chemin relatif/absolu mais ça dépasse un peu mes faibles capacités d'administrateur !

    Merci d'avance pour votre aide

  2. #2
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Bonjour,

    Vérifies ce que contiens $_FILES, en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo '<pre>';
    var_dump($_FILES);
    echo '</pre>';

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Merci pour ce premier pas !

    J'obtiens ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    array(1) {
      ["fichier"]=>
      array(5) {
        ["name"]=>
        string(21) "P1160685 (Medium).JPG"
        ["type"]=>
        string(0) ""
        ["tmp_name"]=>
        string(0) ""
        ["error"]=>
        int(2)
        ["size"]=>
        int(0)
      }
    }
    C'est bien ?

  4. #4
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Tu as une erreur 2.
    Voir ce lien pour comprendre les erreurs :
    http://www.php.net/manual/fr/feature...oad.errors.php

    Dans ton cas, c'est cette ligne qui est trop restrictive :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="max_file_size"  value="2048">
    Tu limites les fichiers à 2048 octets...

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Alors là je dois dire que je me sens vraiment idiot

    En tout cas merci beaucoup pour ton aide d'une rapidité et d'une efficacité incroyables !

    Je précise aux débutants comme moi qui voudrait récupérer ce script, qu'il n'est pas sécurisé. Beaucoup de tutoriaux sur le web abordent la sécurisation de l'envoi de fichier, mieux vaut en lire plusieurs

    A pluuus !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 4] [Upload] Upload - Souci de taille de fichier
    Par R@IZER dans le forum Langage
    Réponses: 12
    Dernier message: 08/01/2009, 23h42
  2. [Upload] Upload et lecture d'un fichier XML
    Par damaskinos dans le forum Langage
    Réponses: 6
    Dernier message: 16/11/2007, 07h10
  3. [Upload] upload de fichier dans un dossier creer en ligne
    Par jeanfrancois dans le forum Langage
    Réponses: 1
    Dernier message: 20/03/2006, 14h09
  4. [upload] Upload d'un dossier
    Par Touxe dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 20/02/2005, 16h30

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