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 taille limitée


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2006
    Messages : 264
    Par défaut [Upload] upload taille limitée
    voila j'ai pris un script de upload de fichier mais le probleme c'est que pour les fichiers trop gros peut etre à partir de 2Mo cela ne passe pas pourtant j'ai un test de taille qui est large jugez en par vous meme

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
     
    <?php
    /* variables à modifier */
    $taillemax = 512000000; // taille max d'un fichier (multiple de 1024)
    //$filetype = "(jpeg|gif)"; // types de fichiers acceptés, séparés par |
    //$nametype = "(.jpeg|.jpg|.gif|.php)"; // extensions correspondantes
    $rep = "./fic/"; // répertoire de destination
    $maxfichier = 10; // nombre maximal de fichiers
    /* fin des modifications */
    $recursif = $_SERVER['PHP_SELF']; // simplification du fichier courant
     
    ### insérer le traitement ci-après ###
     
    if(!$upload = $_GET['upload']) $upload = $_POST['upload'];
    if(!$upload || $upload > $maxfichier) $upload = 1; // protection
     
    // choix du nombre $upload de fichier(s)
    echo "<form action='$recursif' method='post'>\n";
    echo "Quantité <select name='upload' onChange=\"window.open(this.options[this.selectedIndex].value,'_self')\">\n";
    for($i=1; $i<=$maxfichier; $i++)
    {
       echo "<option value='$recursif?upload=$i'";
       if($i == $upload) echo " selected";
          echo ">$i\n";
    }
       echo "</select>\n";
       echo "<input name='upload' value='$upload' size='3'>\n";
       echo "<input type='submit' value='Modifier'></form>\n";
     
    // le formulaire
    echo "<form action='$recursif' enctype='multipart/form-data' method='post'>\n";
    // boucle selon nombre de fichiers $upload
    for($i=1; $i<=$upload; $i++)
    {
       echo "<p>Nom $i <input name='lenom[]'>\n";
       echo "<input type='hidden' name='MAX_FILE_SIZE' value='$taillemax'>";
       echo "Fichier <input type='file' name='lefichier[]'></p>\n";
    }
    ?>
    <input type='submit' value='Envoyer'>
    </form>
    </body>
    </html>
     
    <?php
    if($_POST)
    {
       $msg = array(); // message
       $fichier = $_FILES['lefichier']; // simplication du tableau $_FILES
       for($i=0; $i<count($fichier['name']); $i++)
       {
            // nom du fichier original = nom par défaut
            $nom = $fichier['name'][$i];
            // test existence fichier
            if(!strlen($nom))
            {
               $msg[] = "Aucun fichier !";
            continue;
            }
            // si un nouveau nom est renseigné (avec extension correcte)
            if(eregi($nametype, $_POST['lenom'][$i]))
            $nom = $_POST['lenom'][$i];
            // répertoire de destination
            $destination = $rep.$nom;
            // test erreur (PHP 4.3)
            if($fichier['error'][$i])
            {
               switch($fichier['error'][$i])
               {
                    // dépassement de upload_max_filesize dans php.ini
                    case UPLOAD_ERR_INI_SIZE:
                    $msg[] = "Fichier trop volumineux !"; break;
                    // dépassement de MAX_FILE_SIZE dans le formulaire
                    case UPLOAD_ERR_FORM_SIZE:
                    $msg[] = "Fichier trop volumineux (supérieur à ".(INT)($taillemax/1024)." Mo)"; break;
                    // autres erreurs
                    default:
                    $msg[] = "Impossible d'uploader le fichier !";
               }
            }
    // test taille fichier
            elseif($fichier['size'][$i] > $taillemax)
            $msg[] = "Fichier $nom trop volumineux : ".$fichier['size'][$i];
             //test type fichier
            //elseif(!eregi($filetype, $fichier['type'][$i]))
            //$msg[] = "Fichier $nom de type incorrect : ".$fichier['type'][$i];
            // test upload sur serveur (rep. temporaire)
            elseif(!@is_uploaded_file($fichier['tmp_name'][$i]))
            $msg[] = "Impossible d'uploader $nom";
            // test transfert du serveur au répertoire
            elseif(!@move_uploaded_file($fichier['tmp_name'][$i], $destination))
            $msg[] = "Problème de transfert avec $nom";
            else
            $msg[] = "Fichier <b>$nom</b> téléchargé avec succès !";
       }
       // affichage confirmation
       for($i=0; $i<=count($msg); $i++)
       echo "<p>$msg[$i]</p>";
    }
    ?>
    voila je sais pas si vous pouvez trouver mon erreur car meme si j'enleve le test de taille le fichier ne passe pas

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    et dire qu'il suffit de lire la doc... ton problème vient de sûrement de là : http://fr3.php.net/manual/fr/feature...oad.errors.php (configuration du serveur : taille max !)
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2006
    Messages : 264
    Par défaut
    oui je m'en suis rendu compte apre avoir posté le topic

    mais il faut que je fasse correspondre les 2 tailles si je met 100M dan le .ini
    dans mon fichier upload je doit mettre 99 000 000 ?
    $taillemax =99000000; // taille max d'un fichier (multiple de 1024)

  4. #4
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    c'est le serveur lui même qui se charge de la vérification normalement, tu n'as pas à repasser une couche
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  5. #5
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2006
    Messages : 264
    Par défaut
    alors
    si je laisse la taille taillemax à vérifier aucun fichier passe meme un fichier de 2000 alors que la taille max est de 99 000 000 il ne passe pa G fichier trop volumineux: "taille" et pour les gros fichier style 45Mo aucune erreut et le fichier n'est pas transféré

    si j'enleve le test les petits fichier passe avec fichier machin bien transféré et les gros rien ne se passe comme au cas au dessus

  6. #6
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    il y a un temps limite pour l'upload aussi ^^
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  7. #7
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2006
    Messages : 264
    Par défaut
    swoog tu es bien sympas de m'aider mais je suppose que tu vas dire "apres tu peux chercher tout seul un peu" mais bon il y a tellment de ligne dans le fichier ini

    [CODE]
    max_execution_time = 30 ; Maximum execution time of each script, in seconds

    je ne vois rien d'autres qui precise un temps est ce qu'il faut que je rajoute ?

    help me please !!!!!!!!
    lol
    thanks

  8. #8
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    ça c'est le temps d'exécution du script en lui même pour l'upload c'est (un p'tit coup d'oeil dans la doc ) max_input_time pr défaut c'est 60secondes à priori...

    ensuite, si ça bug encore, jette un coup d'oeil à $_FILES[**]['error'] histoire de te faire une idée de l'erreur : http://fr.php.net/manual/fr/features...oad.errors.php
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  9. #9
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2006
    Messages : 264
    Par défaut
    je pousse le bouchon un peu trop loin mais je place la ligne pour afficher l'erreur mais je teste partout je ne sais pas ou la placer correctement et que mettre dedans stp swoog
    j'ai rajouté le max truk pour le temps mais dans mno case il faut que je le mette aussi en nom d'erreur....

    apres jtembete plus swoog lol

  10. #10
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    il suffit que tu places un truc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(isset($_FILES) && isset($_FILES['lefichier']) && isset($_FILES['lefichier']['error']))
    echo 'status de l\'upload : '.$_FILES['lefichier']['error'];
    else echo 'Pas d'upload...';
    ça t'affichera le numéro de l'erreur... ensuite, il te suffit de comparer avec le lien de la doc
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  11. #11
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2006
    Messages : 264
    Par défaut
    c'est à dormir debout
    je le fait pour un petit fichier comme d'ab qui se telecharge ok:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    status de l'upload : Array
     
    Fichier Mandrake Expert.desktop téléchargé avec succès !
     
    status de l'upload : Array
    mais pour le gro fichier : rien ne s'affiche ni erreur ni rien et il est bien sur toujours pas uploadé ....

  12. #12
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    c'est étrange, le code que je t'ai donné devrait afficher un nombre, pas Array, tu es sûr de ne pas l'avoir modifier ?

    pour les gros fichiers, je comprends plus... tu as bien relancé Apache après avec modifier ton PHP.ini ?

    tu es sûr que Apache ne bloque pas l'upload, il y a une config je crois
    HTTP_POST_MAXI_SIZE ou un truc comme ça dans le httpd.conf d'apache....
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  13. #13
    Membre éprouvé
    Homme Profil pro
    Consultant CRM
    Inscrit en
    Mai 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant CRM
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 99
    Par défaut
    Dans le php.ini il faut voir ca :
    upload_max_filesize ki indique la taille limite d'un upload.
    et
    post_max_size ki prime sur upload_max_filesize....

    il faut avoir post_pax_size > upload_max_filesize ....

    bonne chance

  14. #14
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2006
    Messages : 264
    Par défaut
    Citation Envoyé par Swoög
    c'est étrange, le code que je t'ai donné devrait afficher un nombre, pas Array, tu es sûr de ne pas l'avoir modifier ?
    certaine !
    pour les gros fichiers, je comprends plus... tu as bien relancé Apache après avec modifier ton PHP.ini ?
    bien sur !
    tu es sûr que Apache ne bloque pas l'upload, il y a une config je crois
    HTTP_POST_MAXI_SIZE ou un truc comme ça dans le httpd.conf d'apache....
    je ne trouve aucune ligne concernant l'uload enfin j'ai cherché du mieux que je pouvias

  15. #15
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2006
    Messages : 264
    Par défaut
    par contre je continue des test pour un fichier de 47380489k il ne s'upload pas
    et pour celui de 7423536k il s'upload avec kome je té montré la ligne succe s et array et il se mé bien dans mon repertoire

  16. #16
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2006
    Messages : 264
    Par défaut youpi ?
    dans le php.ini il y avait :
    ; Maximum size of POST data that PHP will accept.
    post_max_size = 100M

    enfin la c'est moi qui est mis 100 et ça marche enfin mais G pas de fichier de 80Mo pour tester
    je vasi me debrouiller

  17. #17
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2006
    Messages : 264
    Par défaut
    merci swoog et nico

  18. #18
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Enfin...

    Y'as trop de configuration dans ce truc...

    faut dire aussi, HTTP est pas vraiment fait pour transférer des très gros fichiers des protocoles "exprès" pour le transfert de fichier comme FTP sont mieux...

    mais bon, via un site web, c'est pas comme si y'avait le choix
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

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

Discussions similaires

  1. [Ajax] File Upload avec taille limite
    Par Kanithael dans le forum Struts 1
    Réponses: 0
    Dernier message: 25/03/2010, 18h30
  2. Réponses: 1
    Dernier message: 18/08/2008, 05h28
  3. [Upload] upload d'image : en limiter la taille
    Par Silvia12 dans le forum Langage
    Réponses: 2
    Dernier message: 06/09/2007, 17h16
  4. [Upload] taille limite en upload
    Par GilesB dans le forum Langage
    Réponses: 11
    Dernier message: 19/06/2006, 16h44
  5. [Upload] Upload Taille limite
    Par dafalri dans le forum Langage
    Réponses: 7
    Dernier message: 15/06/2006, 11h01

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