Mammouth du PHP |
965 Messages
10 mai 2006, 11:54
Voila le code pour ceux qui voudrait s'en servir qui :
-Verrifie les dimensions de l'image
-Verrifie le poids de l'image
-Verrifie l'extension de l'image
<?php
require ("connect.php");
if(isset($_FILES['photo']))
{
//parametres
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 500000;
$dest_dossier = 'c:/www/Avatars/';
$size = getimagesize($_FILES['photo']['tmp_name']);
$height = $size[1];
$width = $size[0];
$taille = 100;
// On verrifie les extensions
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
{
header("location: chavatar.php?erreur1&PHPSESSID=".$_POST['session']);
}
// On verrifie la taille du fichier
elseif( file_exists($_FILES['photo']['tmp_name']) and $_FILES['photo']['size'] > $taille_max)
{
$erreur = true;
header("location: chavatar.php?erreur2&PHPSESSID=".$_POST['session']);
exit();
}
elseif( file_exists($_FILES['photo']['tmp_name']) and $height > $taille && $width > $taille)
{
$erreur = true;
header("location: chavatar.php?erreur3&PHPSESSID=".$_POST['session']);
exit();
}
// Si ficher = bonne taille & bonne extension
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['photo']['name']);
//formatage nom fichier
//enlever les accents
$dest_fichier = strtr($dest_fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
// On upload le fichier
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $_FILES['photo']['name']);
// On remet a jour la base de donnée
$valide = "UPDATE `art` SET avatar = '".$_FILES['photo']['name']."' WHERE nom = '".$_POST['pseudo']."' ";
$test = mysql_query($valide) or die("erreur ! ".mysql_error());
//Redirection sur page precedente
header("location: chavatar.php?1&PHPSESSID=".$_POST['session']);
}
}else{
header("location: chavatar.php?erreur1&PHPSESSID=".$_POST['session']);
}
?>
-Redirige sur la page precedente avec un message d'erreur :
<?php
if(isset($_GET['erreur1'])){
echo "<b>Format de fichier non supporté";
}
elseif(isset($_GET['erreur2'])){
echo "<b>Taille du fichier trop importante";
}
elseif(isset($_GET['erreur3'])){
echo "<b>Dimensions incorrects";
}else{
echo"Centre d'upload";
}
?>
[/php]