Titre: pb type mime pour script d'upload...
Posté par: Anne le le 06-12-2003 a 15:08:35
je suis en train de réaliser un script d'upload et pour éviter que n'importe qui upload n'importe quoi, j'avais pensé à tester certains types mimes des fichiers uploadés et s'ils correspondaient à ceux permit (genre gif, jpg, png, doc...) l'upload se déroulait normalement,sinon il y avait un message d'erreur (genre "erreur type mime") .
Le pb est le suivant, quand j'ai testé le script, avec firebird (mozilla), pas de pb particuliers, le script n'uploadait que les fichiers permis.
J'ai testé avec IE6, et la surprise, un fichier d'extension permise, dont j'avais testé l'upload avant (avec firebird) me sortait un message d'erreur, comme si l'extention n'était pas permise...
Ma question est la suivante, il y a t'il une différence de lecture des types mimes selon les navigateurs? Pour info, le site est hébergé chez ovh et fonctionne avec PHP Version 4.3.4.
voila le script que j'ai fais:
include_once('lib/db.php'); $HTTP_POST_VARS["ficher"] =$fichier; $HTTP_POST_VARS["ok"] =$ok; if (isset($ok)); { $ext_valide = true; $repertoire = "../www/temp/"; $destination = $repertoire.$_FILES["fichier"][name]; // Récupération du type mime $type_mime = $_FILES["fichier"]["type"];
$liste_type = array("image/gif","image/jpeg","image/jpg","application/pdf","application/msexcel", "application/mspowerpoint", "application/msword", "application/rtf", "application/zip", "text/plain", "image/png"); foreach($liste_type as $type) { if ($type_mime != $type) { $ext_valide = false; } else { $ext_valide = true; if (move_uploaded_file($_FILES["fichier"][tmp_name], $destination)) { echo "L'upload du fichier c'est bien passée.<br/>"; } else { print "ERREUR: Impossible de déplacer le fichier: ". $_FILES["fichier"][tmp_name] ." vers la partie Accords du site du CE, vous n'avez peut-être pas remplit le champ \"envoyer le fichier\"<br /> "; } break; } } if ($ext_valide == false) { echo "erreur type mime"; } } echo "<br /><a href=\"accords.php\">Retourner à la page Accords</a> ";
|
Titre: Re:pb type mime pour script d'upload...
Posté par: POde.uk le le 06-12-2003 a 16:00:53
salut anne :) je ne saurais pas répondre à ta question en elle-même, par contre à ta place je ferais un petit script très simple ou tu te contentes d'uploader un fichier et afficher son type mime, tu testes ça sous les deux navigateur et tu seras en mesure de répondre à ta question :)
sinon j'ai juste une astuce au niveau de ton code, au lieu de faire une boucle foreach sur le tableau, tu peux utiliser la fonction in_array(), ça t'économise un "if" en plus
Code:
if (in_array($type_mime, $list_type)) {//extension valide
$ext_valide = true; if (move_uploaded_file($_FILES["fichier"][tmp_name], $destination)) { echo "L'upload du fichier c'est bien passée.<br/>"; }
} else { //extension non valide
$ext_valide = false;
}
|
|
|
Titre: Re:pb type mime pour script d'upload...
Posté par: Anne le le 08-12-2003 a 19:20:36
Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.
|