PHP controler la taille d'une image avant upload

Résolu/Fermé
guy2mars
Messages postés
204
Date d'inscription
dimanche 18 février 2007
Statut
Membre
Dernière intervention
24 janvier 2013
- 17 oct. 2012 à 19:05
asmaanoor
Messages postés
73
Date d'inscription
jeudi 23 août 2012
Statut
Membre
Dernière intervention
20 janvier 2014
- 18 oct. 2012 à 03:52
Bonjour,

Je voudrais contrôler la taille d'une image avant son upload (message d'erreur si besoin).

<input type="hidden" name="MAX_FILE_SIZE" value="200000" />
<input type="file" name="logo_P1" id="logo_P1" />
<input type="text" name="site1" value="1-Intitulé ou Site" id="titre1" onfocus="value=''">

Je sais qu'il y a moyen de contrôler lors de l'upload, mais dans ce cas, je perds tout un cheminement dans mon process.

Y a t il une solution?

Merci d'avance



1 réponse

asmaanoor
Messages postés
73
Date d'inscription
jeudi 23 août 2012
Statut
Membre
Dernière intervention
20 janvier 2014
18
17 oct. 2012 à 21:32
Tu vas trouver ton bonheur dans ce bout de code, il controle la taille du fichier et son extension avant l'upload, je l'utilise toujours et il marche très bien;
bon courage :)

<?php

if((isset($_FILES['fichier'])) && ($_FILES['fichier']['name']!="")) {
echo 'isset'.$_FILES['fichier']['name'];
$dossier = 'upload/';
$fichier = basename($_FILES['fichier']['name']);
$taille_maxi = 2000000;
$taille = filesize($_FILES['fichier']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg', '.pdf', '.doc', '.docx', '.xls', '.xlsx');
$extension = strrchr($_FILES['fichier']['name'], '.');
//Début des vérifications de sécurité...
//Si l'extension n'est pas dans le tableau
if(!in_array($extension, $extensions)){
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi){
$erreur = 'Le fichier est trop gros...';
}
//S'il n'y a pas d'erreur, on upload
if(!isset($erreur)){
//On formate le nom du fichier ici...
echo 'non erreur';
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
//Si la fonction renvoie TRUE, c'est que ça a fonctionné...
if(move_uploaded_file($_FILES['fichier']['tmp_name'], $dossier . $fichier)) {
echo "Upload réussi"
}
//Sinon (la fonction renvoie FALSE).
else{
echo 'Echec de l\'upload '.$erreur;
}
}
}

?>
3
guy2mars
Messages postés
204
Date d'inscription
dimanche 18 février 2007
Statut
Membre
Dernière intervention
24 janvier 2013
71
17 oct. 2012 à 23:13
Je te remercie pour ta contribution... Demain j'adapte ton code.
Cordialement
0
asmaanoor
Messages postés
73
Date d'inscription
jeudi 23 août 2012
Statut
Membre
Dernière intervention
20 janvier 2014
18
18 oct. 2012 à 03:52
Inchaalah,
Si tu ne comprends pas quelque chose dans le code, je peux te l'expliquer et ca sera avec plaisir

Bonne journée
0