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 :

La superglobale $_FILES n'est pas créée


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut La superglobale $_FILES n'est pas créée
    Bonjour,

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public function formCsvARMToDb()
    { 
        $page = new PhpEcho([DIR_ROOT, 'view Layout.php']);
     
        $body = new PhpEcho([DIR_ROOT, 'view FormCsvARMToDb_view.php'], []);
        $page['body'] = $body;
     
        // on renvoie au navigateur la page assemblée
        echo $page;
    }

    FormCsvARMToDb_view.php :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <!-- form to download a csv file from the hard disk -->
    <form action="" method="post" enctype="multipart/form-data">
        <label for="file2"><b>File CSV</b></label>
        <input type="file" name="file2" id="file2"><br/>
        <input type="submit" name="submitfile2" value="csv file download"><br/>
        </form>

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public function csv_upload()
    {
    $this->formCsvARMToDb();
        echo "csvupload 14 FILES<br/>";var_dump($_FILES);echo "<br/>";
    if (isset($_FILES['file2']))
        if (!$_FILES['file2']["error"])
        {
            $upload_dir = 'csv';
            $name=$_FILES['file2']['name'];
            $this->filepath=DIR_ROOT.$upload_dir.DIRECTORY_SEPARATOR.$name;
        }
    return ($this->filepath);
    }//end csv_upload

    retourne
    csvupload 14 FILES
    array(0) { }
    Le formulaire de sélection d'un fichier s'affiche bien mais la variable $_FILES est nulle. Peut-on me dire pourquoi ?

  2. #2
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Super ; j'ai trouvé
    J'ai supposé qu'il fallait que l'action du formulaire ne soit pas dans le même fichier que le formulaire. Je l'ai donc exportée et ça marche !

  3. #3
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Bonsoir,
    je réactive cette discussion car le problème se pose de nouveau et l'export de l'action ne suffit pas...

    FormUpload.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <br/>
    <form action="?action=ControllerFormUploadSubmit" method="post" enctype="multipart/form-data">
        <label for="file2"><b>File CSV</b></label>
        <input type="file" name="file2" id="file2"><br/>
        <input type="submit" name="submitfile2" value="CSV file upload"><br/>
    </form>

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // ROUTING
    $routes = [
        ...
        'ControllerFormUploadSubmit' => ticket_rawsrc\model\CSVImport::class
    ];

    dans CVSImport.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $FormUploadSubmit=new FormUploadSubmit();
     
    $FormUploadSubmit->invoke();

    dans FormUploadSubmit.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class FormUploadSubmit
    {
        public function invoke()
        {   UtilFct::debug("formuploadsubmit 13",$_FILES);
            // ici tu gères le fichier uploadé avec $_FILES
            $currentDirectory = getcwd();
            $upload_dir = 'csv_upload';   // dossier où sera déplacé le fichier
            $name = $_FILES['file2']['name'];
    etc

    la méthode debug est un var_dump amélioré de $_FILES et retourne :
    formuploadsubmit 13 array(0) { }
    Donc $_FILES est vide. Pourquoi, SVP ?

  4. #4
    Membre averti Avatar de Freudd
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 165
    Points : 379
    Points
    379
    Par défaut
    bonsoir laurentSc,

    Il est de quelle taille le fichier que tu essais d'uploader ? Car si il dépasse la limite de taille fixé par ton serveur, c'est normale que ta variable soit vide.

  5. #5
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Merci pour ta réponse nocturne.
    Non, ce n'est pas lié à la taille du fichier, car j'ai une application similaire (sur le même serveur) qui fonctionne. Je vais essayer de comparer les 2...et j'en rendrai compte ici.

  6. #6
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    J'ai fini par faire remarcher l'upload. C'est très compliqué donc je me lance pas dans une explication, et en plus, j'ai trouvé la cause mais ne comprend pas pourquoi. Je mène l'enquête et si j'en sais plus, je le rapporterai.

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

Discussions similaires

  1. Réponses: 51
    Dernier message: 17/07/2018, 13h12
  2. Réponses: 1
    Dernier message: 05/11/2015, 06h55
  3. Ma boite mail ne s'est pas créée
    Par pierrot10 dans le forum Exchange Server
    Réponses: 3
    Dernier message: 25/09/2008, 13h15
  4. [10g] import full, le user n'est pas crée
    Par apersonnat dans le forum Outils
    Réponses: 1
    Dernier message: 01/02/2008, 18h02
  5. Le fichier monProjet_private.res n'est pas crée ?!
    Par _SamSoft_ dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 16/08/2007, 13h10

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