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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 : 38
    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 : 38
    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 : 38
    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)

+ 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