Probleme upload fichier .eps

WRInaute discret
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:
$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.
 
WRInaute impliqué
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.
 
WRInaute discret
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.
 
WRInaute impliqué
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.
 
WRInaute passionné
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
 
WRInaute accro
rog a dit:
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.
 
WRInaute impliqué
:lol: J'ai beau tester et retester, un fichier BMP renommé en EPS, Apache me donne comme MIMETYPE: application/postscript
 
WRInaute impliqué
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.
 
WRInaute discret
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.
 
Discussions similaires
Haut