Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: arnaudb le le 17-06-2005 a 16:10:01

Titre: Upload image
Posté par: arnaudb le le 17-06-2005 a 16:10:01

Salut,

Voila j'ai besoin de faire un upload d'image via mon formulaire.
J'ai trouvé ce code issu d'un tuto et je l'ai adapter comme je pouvais.


Code:
if(isset($_FILES['photo']))
{
unset($erreur);
$extensions_ok = array('png', 'jpg', 'jpeg');
$taille_max = 100000;
$dest_dossier = 'photo_annonce/';
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ))
{
echo "Veuillez sélectionner un fichier de type png, gif ou jpg !";
}
elseif( file_exists($_FILES['photo']['tmp_name'])
and filesize($_FILES['photo']['tmp_name']) > $taille_max)
{
echo "Votre fichier doit faire moins de 100Ko !";
}
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['photo']['name']);
$dest_fichier = strtr($dest_fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
$dest_fichier = $pseudo."_".md5($pseudo).$dest_fichier;
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier); }
}


Le probleme est que j'arrive à envoyer des gros fichier alors que la limite est à 100000.
Deuxiemement j'aimerais que mon script s'arrete sur une des erreur de l'upload.

Cordialement Arnaud

Titre: Re:Upload image
Posté par: MFred le le 17-06-2005 a 17:08:08

Salut,

Essaye ca :

Code:
if(isset($_FILES['photo']))
{
unset($erreur);
$extensions_ok = array('png', 'jpg', 'jpeg');
$taille_max = 100000;
$dest_dossier = 'photo_annonce/';
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ))
{
echo "Veuillez sélectionner un fichier de type png, gif ou jpg !";
}
elseif( file_exists($_FILES['photo']['tmp_name']) && $_FILES['photo']['size']>$taille_max)
{
echo "Votre fichier doit faire moins de 100Ko !";
}
elseif(file_exists($_FILES['photo']['tmp_name']) && (!isset($erreur) || empty($erreur)) )
{
$dest_fichier = basename($_FILES['photo']['name']);
$dest_fichier = strtr($dest_fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
$dest_fichier = $pseudo."_".md5($pseudo).$dest_fichier;
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier); }
}


Explications : pour la taille du fichier, lors de l'upload, elle est stockée dans la variable $_FILES['fichier']['size'], et pour ne pas que la dernière partie s'execute, il faut remplacer le if par un else : si une condition précédente est vérifiée, ce morceau de code ne sera pas executé, donc pas d'upload.

Titre: Re:Upload image
Posté par: dietbald le le 19-06-2005 a 13:15:22


if(isset($_FILES['photo']))
{
unset($erreur);
$extensions_ok = array('png', 'jpg', 'jpeg');

// ceci est la taille de fichier maximal

$taille_max = 100000;

//dossier dns lequel il enregistre tes fotos
$dest_dossier = 'photo_annonce/';


//Il controlle si l'extention du fichier est belle et bien une qui ce trouve dans $extension_ok si par exeple tu veux ajouter les fichier image targa il suffit d'ajouter 'tga' en haut la page
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ))
{
echo "Veuillez sélectionner un fichier de type png, gif ou jpg !";
//si tu veux qu'il arrete d'executer le script apres avor affu-icher ce message tu peut utilise exit; ou die "message a afficher avant de c'arrete";


}
//controle de la taille
elseif( file_exists($_FILES['photo']['tmp_name']) && $_FILES['photo']['size']>$taille_max)
{
echo "Votre fichier doit faire moins de 100Ko !";
}
//controle si le fichier est belle et bien uploadé et si il n'y a pas d'erreur
elseif(file_exists($_FILES['photo']['tmp_name']) && (!isset($erreur) || empty($erreur)) )
{
$dest_fichier = basename($_FILES['photo']['name']);
//supprime les accent par les meme lettres sans accent
$dest_fichier = strtr($dest_fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
$dest_fichier = $pseudo."_".md5($pseudo).$dest_fichier;
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier); }
}


j'espere que ceci t'aidra

Titre: Re:Upload image
Posté par: arnaudb le le 20-06-2005 a 12:33:54

Merci à vous.
Enfin mon script fonctionne à merveille.

@--------+


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.