Verifier mon script d'upload

Répondre
mobman02
le 08/01/2005 à 19:05
mobman02
Bonjour,
j'ai enfin reussi (apres de tres tres tres nombreuse prise de tete) a coder un script d'upload convenable.
Il fonctionne en interne ! Ué ! GIGA !
mais, c'est le gros boxon, et, je me suis melanger les pinceau...

Alors si quelqu'un pouvé essayer de le faire "propre" et aussi rectifier certains truc (comme par exemple passer la variable $dirname dans le move_uploded_file, parce que moi a chaque fois que j'ai essayer ca marchais plus.)

Voila, est-ce bien coder aussi ?

<?  

// l'input de l'uploader porte le nom de Fichier, donc touts les tests porteront sur les
// variables suivantes :
// Fichier_name : le nom du fichier
// Fichier_type : le type de fichier plain pour txt, gif pour gif pjpeg pour jpg
// Fichier_size : la taille du fichier
// SI $Fichier est à none c'est une erreur. (j'espere que ca renvoie none !)
// La fonction stristr test si une sous-chaine est présente dans une chaine principale

$Fichier = $_FILES['Fichier']['name']; // ca renvoie none nan ?
$Fichier_name = $_FILES['Fichier']['name']; //nom reel de l'image
$Fichier_size = $_FILES['Fichier']['size']; //poid de l'image en octet
$Fichier_type = $_FILES['Fichier']['type'];//type de l'image
$tmp = $_FILES['Fichier']['tmp_name'];//nom temporaire

// Les variables :

$max_size = 100000; // 100ko
$dirname = './images_up/'; // chemin de destination des fichiers depuis la racine du script

// on test deja s'il a eu upload cad que $up == ok

$up = addslashes(htmlspecialchars($_GET['up']));

if ($up == 'ok')
{
// il s'agit d'une image on recupere un tableau de caracteristiques
// de l'image pour les tests.

if ($Fichier != "none" && !stristr($Fichier_type, "plain")) {
$tab = getimagesize($tmp); }

// test une erreur de taille de fichier,

if ($Fichier_size > $max_size) {
echo "La taille du fichier n'est pas correct"; }

// test si erreur dans la variable $Fichier

else if (!$Fichier || $Fichier == "none") {
echo "Ya pas de fichier."; }
else if (strpos($Fichier_name,'\\') || strpos($Fichier_name, '/')) {
echo "Le format du fichier n'est pas correct"; }

// test les extensions des fichiers meme si le test n'est pas tres secure
// ca fait un test de plus :o)

else if (!stristr($Fichier_name, ".jpg") && !stristr($Fichier_name, ".jpeg") && !stristr($Fichier_name, ".gif") && !stristr($Fichier_name, ".JPG"))
{
echo "Le format du fichier n'est pas correct, jpg ou gif uniquement";
}

// je test si l'image est bien une image, si
// une personne renomme un .doc en .jpg par exemple ce test suffit a annuler l'upload

else if (!$tab[0] && !stristr($Fichier_type, "image")) {
echo "Le format de l'image n'est pas correct"; }

// test le type d'encodage du fichier pour etre bien sur de sa nature

else if (!stristr($Fichier_type, "gif") && !stristr($Fichier_type, "pjpeg") && !stristr($Fichier_type, "jpeg")) {
echo "Le format du fichier n'est pas correct, jpg ou gif uniquement"; }

else
{
// tout s'est déroulé ok, ouf enfin on peut uploader le fichier avec move_up_file
// faut changer le nom si le fichier existe deja
// apres avoir supprimer les espaces avec str_replace.

if (file_exists("$dirname/$Fichier_name")) {
$extention_fichier = substr(strrchr($Fichier_name,'.'),1);
$date = date("U");
$Fichier_name = "$date.$extention_fichier";}

echo "Votre fichier à bien été uploadé merci";
$file_name = str_replace(" ","_",$Fichier_name);
move_uploaded_file($tmp,'./images_up/'.$file_name);

$url = ".$dirname$file_name";
echo "<img src=\"$dirname$file_name\">";

}
}
?>
http://damienalexandre.fr/
mobman02
le 08/01/2005 à 19:08
mobman02
Mince ! Je vien de voir que dirname correspond a une fonction PHP ! Voila pourquoi ca poser des problemes !
Bon bah,
si vous voyez encore d'autre erreur comme celle la merci de me le signaler.
http://damienalexandre.fr/
AlScafi
le 09/01/2005 à 06:18
AlScafi
un truc qui m'a choquer a la lecture de ton script, c'est $Fichier et $Fichier_name qui sont exactement les mêmes variables ! En plus je pense que si l'utilisateur n'a rien mis a uploader, ça ne renvoie pas none mais plutôt FALSE ou 0 :p
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours