Empeche upload gros fichier php/mysql

Fermé
checkboy - 2 avril 2009 à 16:28
 checkboy - 2 avril 2009 à 16:58
Bonjour,

je realise actuelement un site web avec formulaire et j'essaie actuelement de gerer toutes les erreurs eventuelles.
Notemment, j'aimerai empecher l'upload de fichier de plus de 10Mo, comment gerer les erreurs dans le cas ou un petits comique essaie meme si :
j'ai donc régler dans php.ini
upload_max_filesize = 10M
post_max_size = 25M

car la actuelement il me detruit tout l'enregistrement en cours si je fait le test...

quelle est la meilleur methode test avec $_FILES['name']['size'], test avec $_FILES['name']['error'] ou autre ???
A voir également:

2 réponses

bonjour
je te propose ceci:
1. rajoute ceci a ton formulaire: <input type="hidden" name="MAX_FILE_SIZE" value="taille_max_en_octet" />
nb: tu remplacera bien evidemment taille_max_en_octet par un entier qui la taille maximal du fichier
2. la tu vas dans ton script qui traite le formulaire
tu procede comme ça:

<?php
 if($_FILES['ton_fichier']['error']) // tu verifie s'il ya des erreurs
       switch($_FILES['ton_fichier']['error']){
            case 1: // la taille du fichier est plus grande que la taille max dans php.ini
                      // tu traite ça ici
                      break;
            case 2: // la taille du fichier est plus grande que la taille max dans le formulaire cad MAX_FILE_SIZE
                      // tu traite ça ici
                      break;
            case 3: // le fichier a ete partiellement transferer
                      // tu traite ça ici
                      break;
            case 4: // ls fichier transferer a une taille nulle
                      // tu traite ça ici
                      break;
// autrement pas d'erreur
else{// dans ce cas $_FILES['ton_fichier']['error'] vaut 0
    // traitement
}


essaye ça ou sinon fait voir ton script de traitement du formulaire
1
merci d'avoir repondu j'avais deja essayer ta methode sans grand succes non plus...

voila ce que j'ai fait dernierement....
tu comprendra que j'ai en fait 10 champs type file dans ce cas la vive les boucles...

$i=1;
while($i < 11)
{
$i2=(string)$i;

if ($_FILES['annexe'.$i2]['size'] > 10485760)
{
echo"message d'erreur";
}

if(move_uploaded_file($_FILES['annexe'.$i2]['tmp_name'], "annexe/annexe".$i2."/" . $_FILES['annexe'.$i2]['name']))
{

$champ = "annexe".$i2;
$sql = "UPDATE analyse_nom
ET $champ ='".$_FILES['annexe'.$i2]['name']."'
WHERE echantillon='" .$_SESSION['echantillon']."' AND libelle='".$_SESSION['libelle']."'" ;
$requete = mysql_query($sql) or die( mysql_error() ) ;


}
$i=$i+1;
}
0