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 :

Taille de fichiers en Upload


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 43
    Points
    43
    Par défaut Taille de fichiers en Upload
    Salut

    Je rencontre un soucis d'upload avec le script suivant tiré du tutorial Developpez.com d'Antoine Hérault. En fait, le script fonctionne pour l'upload de fichier jusqu'à une certaine taille, pour un fichier de 89 Ko ça fonctionne mais par pour un fichier de 190 Ko alors que j'ai indiqué une taille maxi d'environ 3 Mo. Pour info, mes tests sont effectués en local avec WAMP5.

    Voici le 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
    34
    35
    36
    37
    <?php
    $dossier = 'upload/';
    $fichier = basename($_FILES['obs']['name']);
    $taille_maxi = 3000000;
    $taille = filesize($_FILES['obs']['tmp_name']);
    $extensions = array('.pdf');
    $extension = strrchr($_FILES['obs']['name'], '.'); 
    //Début des vérifications de sécurité...
    if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
    {
         $erreur = 'Vous devez uploader un fichier de type pdf';
    }
    if($taille>$taille_maxi)
    {
         $erreur = 'Le fichier est trop gros...';
    }
    if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
    {
         //On formate le nom du fichier ici...
         $fichier = strtr($fichier, 
              'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
              'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
         $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
         if(move_uploaded_file($_FILES['obs']['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 !';
         }
    }
    else
    {
         echo $erreur;
    }
    ?>
    Merci pour votre aide

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Attention, la configuration des tailles de fichiers doit être faite dans le php.ini. Par défaut, cette valeur est fixée à 2Mo...
    Je n'arrive pas à uploader de gros fichiers

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 43
    Points
    43
    Par défaut
    Merci ;

    Mais dans php.ini j'ai :

    ; Maximum size of POST data that PHP will accept.
    post_max_size = 8M

    ; Maximum allowed size for uploaded files.
    upload_max_filesize = 2M

    Ca devrait passer pour un fichier de 190 Ko

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Ah effectivement, je n'avais pas fait attention à la taille du fichier que tu testes (n'empêche que si tu veux mettre une taille maximale à 3Mo, il faudra changer upload_max_filesize)

    Bon, lorsque tu dis que ça ne passe pas, ça ne charge pas du tout le fichier ou ça tombe dans ta condition "fichier trop gros" ?
    Tu peux afficher ce que le formulaire envoie comme fichier en faisant un print_r de $_FILES au début de ton script (et éventuellement nous en donner le résultat)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<pre>'.print_r($_FILES, true).'</pre>';

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 43
    Points
    43
    Par défaut
    Merci

    En ajoutant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<pre>'.print_r($_FILES, true).'</pre>';
    J'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Array
    (
        [obs] => Array
            (
                [name] => test_pdf.pdf
                [type] => 
                [tmp_name] => 
                [error] => 2
                [size] => 0
            )
    
    )
    
    Echec de l'upload ! 
    Effectivement je n'obtiens pas : Fichier trop gros, mais ce que je constate c'est dès que le fichier dépasse une certaine taille j'obtiens : Echec de l'upload. Ca ne vient pas du nom de fichier, ni de l'extension, j'ai testé.

    Une petite idée

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 43
    Points
    43
    Par défaut
    J'ai trouvé, cela vient tout simplement de mon formulaire dans lequel il y avait le champ suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="MAX_FILE_SIZE" value="100000">
    Désolé pour ces recherches, alors que j'avais l'erreur sous les yeux, mais je cherchais au niveau du script d'upload.

    Merci beaucoup

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

Discussions similaires

  1. la taille des fichier a uploader
    Par mvc_dev dans le forum ASP.NET MVC
    Réponses: 1
    Dernier message: 18/02/2011, 03h54
  2. Contrôle de la taille de fichiers avant upload
    Par flashy38 dans le forum Web
    Réponses: 3
    Dernier message: 10/10/2008, 11h01
  3. [UPLOAD] Contrôle côté client de la taille des fichiers a uploader.
    Par JMLLB dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/05/2008, 11h25
  4. [Système] Augmenter la taille de fichier en upload
    Par clarence dans le forum Langage
    Réponses: 6
    Dernier message: 05/01/2007, 08h23
  5. Tester la taille de fichier avant upload
    Par RobinNono dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 27/06/2006, 17h38

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