Probleme upload fichier .eps

shelcko
WRInaute discret
WRInaute discret
 
Messages: 234
Inscription: 1 Jan 2007

Probleme upload fichier .eps

Message le Ven Aoû 03, 2007 8:49

Bonjour,
je suis en train de faire un ptit script avec un upload de fichier.
Et je voudrais savoir s'il y a une procedure specifique pour l'upload de fichier eps.
Car voilà une partie de mon code:
Code: Tout sélectionner
$iduser=$_SESSION['id'];
$req4="SELECT * FROM user WHERE iduser='$iduser'";
$query4=mysql_query($req4) or die (mysql_error());
$data4=mysql_fetch_assoc($query4);
if($data4['societe']!=''){
$upus=$data4['societe'];
}
else{
$upus=$ata4['nomus'];
}
$time=time();
$time2=substr($time,-4,4);
$up2=$upus.'_'.$time2;

if(is_uploaded_file($_FILES['translogo']['tmp_name'])){
   if($_FILES['translogo']['type']=='image/jpeg'){
      $up='./maquettes/'.$up2.'.jpeg';
      move_uploaded_file($_FILES['translogo']['tmp_name'], $up);
   }
   elseif($_FILES['translogo']['type']=='application/postscript'){
      $up='./maquettes/'.$up2.'.eps';
      move_uploaded_file($_FILE['translogo']['tmp_name'], $up);
   }
   else{
   $erreur='Seul les fichiers .jpeg et .eps sont acceptés.';
   }
}

Donc mon script fonctionne pour le jpeg mais pas pour l'eps
Donc si vous avez une idée je suis preneur car là je sèche.
Merci d'avance.


seebz
WRInaute impliqué
WRInaute impliqué
 
Messages: 808
Inscription: 15 Avr 2007

Message le Ven Aoû 03, 2007 9:55

es-tu sur que apache reconnait le type MIME des fichiers *.eps ?

en d'autres mots, $_FILES['translogo']['type'] retourne-t-il bien 'application/postscript' ?

si ce n'est pas le cas, un p'tit AddType application/postscript .eps dans .htaccess devrait résoudre le problème.

shelcko
WRInaute discret
WRInaute discret
 
Messages: 234
Inscription: 1 Jan 2007

Message le Ven Aoû 03, 2007 10:32

Merci pour le renseignement c'est vrai que je ne me suis pas posé la question vu que j'ai récupéré le type mine eps dans une liste de type standard j'ai cherché à comprendre merci.

FloBaoti
WRInaute impliqué
WRInaute impliqué
 
Messages: 755
Inscription: 30 Avr 2006

Message le Ven Aoû 03, 2007 11:45

Personellement, je trouve que vérifier les types MIME est totalement inutile. Tout simplement parcequ'ils ne sont basés que sur l'extension du fichier. Donc autant vérifier directement si le nom du fichier se termine par .eps, c'est plus direct...

Il faut aussi penser à quelque chose: je prend un fichier BITMAP Windows (.bmp), je le renomme en .eps -> ça n'en fait pas un fichier .eps ! Le contenu du fichier reste du bitmap et non du postscript. Il faut penser à ça et essayer de trouver (ou de créer) un outil qui analyse les en-têtes des fichiers, c'est la seule vraie façon de vérifier le type d'un fichier.


rog
WRInaute passionné
WRInaute passionné
 
Messages: 1662
Inscription: 21 Sep 2006

Message le Ven Aoû 03, 2007 11:55

parcequ'ils ne sont basés que sur l'extension du fichier


pas sur du tout

il me semble que apache tire le mime type du header envoyé par le navigateur et c'est la raison pour laquelle ce type de verification n'est pas du tout fiable car c'est spoofable

rog


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8306
Inscription: 23 Nov 2005

Message le Ven Aoû 03, 2007 12:01

rog a écrit:
parcequ'ils ne sont basés que sur l'extension du fichier


pas sur du tout

il me semble que apache tire le mime type du header envoyé par le navigateur et c'est la raison pour laquelle ce type de verification n'est pas du tout fiable car c'est spoofable

rog


Je plussoye rog. A ce que j'en sais apache tire bien le mime-type du header du fichier, non de l'extension. Faut pas prendre les développeur de PHP pour des inconscients à ce point.

FloBaoti
WRInaute impliqué
WRInaute impliqué
 
Messages: 755
Inscription: 30 Avr 2006

Message le Ven Aoû 03, 2007 12:12

:lol: J'ai beau tester et retester, un fichier BMP renommé en EPS, Apache me donne comme MIMETYPE: application/postscript


seebz
WRInaute impliqué
WRInaute impliqué
 
Messages: 808
Inscription: 15 Avr 2007

Message le Ven Aoû 03, 2007 19:16

Pour un MIME 'réel', il s'emblerait que l'extension fileinfo (http://fr.php.net/manual/fr/ref.fileinfo.php) soit plus approprié bien que pas infaillible.

Les fonctions dans ce module essaient de savoir le type de contenu et l'encodage d'un fichier en regardant certaines séquences d'octet magique à des positions spécifiques à l'intérieur du fichier. Bien qu'il ne s'agit pas d'une approche infaillible, la méthode heuristique effectue un très bon travail.

shelcko
WRInaute discret
WRInaute discret
 
Messages: 234
Inscription: 1 Jan 2007

Message le Sam Aoû 04, 2007 20:26

En fait c'est pour un système de devis en ligne donc savoir si c'est de l'eps ou du jpeg m'interesse car le pris change .
Mais apres si le gus essaie de gruger ça se voit vite fait vu qu'il y a vérification manuel et mise en page pour bat.
mais je crois quand meme que je vais tester l'extension dans mon cas car je sais pas encore trop ou ça va etre installé donc je voudrais pas trop etre embete avec les version d'apache.


rog
WRInaute passionné
WRInaute passionné
 
Messages: 1662
Inscription: 21 Sep 2006

Message le Sam Aoû 04, 2007 21:35

tu ouvres le fichier en binaire et compare les headers

rog


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités