par
spirou » 29 déc. 2005, 23:05
Bonsoir,
J'ai encore un petit problème avec mon code, même lorsque je n'upload pas d'image quand j'envoi le formulaire, il m'affiche tout de même un message d'erreur :
Votre image doit-être de type png, jpeg ou jpg.
J'arrive pas à trouver pourquoi.
Je remet le code, mais c'est le même :
if(isset($_FILES['image']))
{
unset($erreur);
$extension_tolere = array('png', 'jpg', 'jpeg'); // extension d'images autorisées
$poids_max = 80000;
$dossier_upload = "../images/upload/";
if( !in_array( substr(strrchr($_FILES['image']['name'], '.'), 1), $extension_tolere ) ) // si l'extension n'est pas de type $extension_tolere
{
$erreur = 'Votre image doit-être de type png, jpeg ou jpg.';
}
elseif( file_exists($_FILES['image']['tmp_name']) // si le fichier existe
&& filesize($_FILES['image']['tmp_name']) > $poids_max) // et si son poids est supérieur à poids_max
{
$erreur = 'Votre image doit être inférieure à 80Ko !';
}
if(!isset($erreur)) // s'il n'y pas d'erreur
{
$dest_img = basename($_FILES['image']['name']); // name signifie le nom de l'image sur la machine du visiteur
$dest_img = strtr($dest_img,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); // remplace les caractères spéciaux
$dest_img = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_img); // remplace les autres caractères spéciaux
move_uploaded_file($_FILES['image']['tmp_name'], $dossier_upload . $dest_img); // tmp_name chemin temporaire du fichier
$chemin = $dossier_upload . $dest_img;
}
if(isset($erreur))
{
echo '<p>' . $erreur .'</p>';
}
}
Avez vous une idée ?
Bonsoir,
J'ai encore un petit problème avec mon code, même lorsque je n'upload pas d'image quand j'envoi le formulaire, il m'affiche tout de même un message d'erreur :
[i]Votre image doit-être de type png, jpeg ou jpg.[/i]
J'arrive pas à trouver pourquoi.
Je remet le code, mais c'est le même :
[php]
if(isset($_FILES['image']))
{
unset($erreur);
$extension_tolere = array('png', 'jpg', 'jpeg'); // extension d'images autorisées
$poids_max = 80000;
$dossier_upload = "../images/upload/";
if( !in_array( substr(strrchr($_FILES['image']['name'], '.'), 1), $extension_tolere ) ) // si l'extension n'est pas de type $extension_tolere
{
$erreur = 'Votre image doit-être de type png, jpeg ou jpg.';
}
elseif( file_exists($_FILES['image']['tmp_name']) // si le fichier existe
&& filesize($_FILES['image']['tmp_name']) > $poids_max) // et si son poids est supérieur à poids_max
{
$erreur = 'Votre image doit être inférieure à 80Ko !';
}
if(!isset($erreur)) // s'il n'y pas d'erreur
{
$dest_img = basename($_FILES['image']['name']); // name signifie le nom de l'image sur la machine du visiteur
$dest_img = strtr($dest_img,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); // remplace les caractères spéciaux
$dest_img = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_img); // remplace les autres caractères spéciaux
move_uploaded_file($_FILES['image']['tmp_name'], $dossier_upload . $dest_img); // tmp_name chemin temporaire du fichier
$chemin = $dossier_upload . $dest_img;
}
if(isset($erreur))
{
echo '<p>' . $erreur .'</p>';
}
}
[/php]
Avez vous une idée ?