mime_content_type ne renvoie que text/plain :'-(

mime_content_type ne renvoie que text/plain :'-( - PHP - Programmation

Marsh Posté le 08-02-2005 à 16:43:56    

Salut les codeux,
 
Désolé de vous solliciter encore une fois (quoique j'ai apporté une petite contrib ce matin :D).
 
Mon souci du jour, toujours lié au moteur de recherche :
 
On me donne l'identifiant d'un fichier, je récupère son répertoire et son nom.
 
J'ai donc deux variables. Par exemple :  
$dossier = "D:/Repertoire/"
$fichier = "toto.pdf"
 
Je souhaite connaître le type de $fichier pour :
- si c'est du texte, en interpréter le contenu,
- sinon, déclencher son téléchargement (boîte de dialogue).
 
J'ai essayé d'utiliser la fonction mime_content_type de deux manières :
 

echo mime_content_type($dossier . $fichier);


 


chdir($dossier);
echo mime_content_type($fichier);


 
Dans les deux cas, la fonction me renvoie 'text/plain' comme réponse.
 
Et même si je lui rentre un fichier qui n'existe pas, j'ai 'text/plain'.
 
Je dois me tromper quelque part dans son utilisation, mais où ? [:kalisto]
 
Je sais qu'il serait sans doute aussi simple d'utiliser une fonction brutale qui teste l'extension du fichier en dur, mais j'ai envie d'essayer de faire ça proprement.
 
Merci d'avance pour votre aide :)

Reply

Marsh Posté le 08-02-2005 à 16:43:56   

Reply

Marsh Posté le 08-02-2005 à 16:48:27    

et si tu mets un fichier image dans le meme dossier que ton script et que tu fais un mime_content_type('monimage.jpg'); il te donne quoi


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 08-02-2005 à 16:51:14    

T'as l'extension mime_magic d'activée ?

Reply

Marsh Posté le 08-02-2005 à 16:51:30    

DJ Yell > Tiens, ça marche. Hum.
 
Pour Florent_G : oui, sinon la fonction n'est pas reconnue (modif du PHP.ini, copie de la DLL où il faut, utilisation du mime.magic de base).
 
Merci de vos réponses :)


Message édité par Fred999 le 08-02-2005 à 16:52:15
Reply

Marsh Posté le 08-02-2005 à 16:57:43    

Si avec le fichier directement dans le même dossier ça marche, c'est que le problème vient du chemin d'accès.
 
A mon avis il ne faut pas mettre un chemin de type C:\mondossier\monfichier.ext


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 08-02-2005 à 17:00:07    

Note que j'utilise les slashs et pas les anti-slashs pour accéder à mes répertoires, et que le chdir() pour accéder au répertoire du fichier fonctionne.
 
En fait, je suis obligé de partir d'une lettre de lecteur Windows car les fichiers du moteur et le code ne sont pas au même endroit.

Reply

Marsh Posté le 08-02-2005 à 17:03:45    

et en essayant avec des ../../tondossier/tonfichier.ext pour tester ?


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 08-02-2005 à 17:05:24    

Je vais essayer, je continue de triturer le code dans tous les sens :D
 
(le fichier désiré est bien un is_file)

Reply

Marsh Posté le 08-02-2005 à 17:12:29    

Tiens, c'est bien fun.
 
J'ai donc testé différents trucs avec un fichier de type JPEG (.jpg), en le plaçant à différents endroits.
 
Quels que soient ces endroits, le type renvoyé par mime_content_type est le bon.
 
Idem avec un fichier ZIP.
 
Par contre, avec des fichiers de type Excel ou Word (.xls, .doc), la fonction semble ne plus rien y comprendre... et renvoyer uniquement text/plain.
 
Je précise que le fichier c:/php/magic.mime est bien pris en compte (j'ai dû rajouter son chemin d'accès dans php.ini pour que ça marche) et qu'il contient évidemment les infos nécessaires aux définitions de ces fichiers (c'est celui par défaut pour PHP 4.3.0).
 
Qu'est-ce qu'on met déjà dans ces cas-là ?
 
[:vague nocturne]
 
(merci beaucoup de ton aide)

Reply

Marsh Posté le 08-02-2005 à 17:16:40    

Là je ne sais pas trop, désolé.
 
++


Message édité par Dj YeLL le 08-02-2005 à 17:16:54

---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 08-02-2005 à 17:16:40   

Reply

Marsh Posté le 08-02-2005 à 17:23:50    

Pas de souci, tu as fait ce que tu as pu :)
 
De touta façon, j'ai déjà bien donné niveau problèmes à deux sous avec ce truc :  
 
http://forum.hardware.fr/forum2.ph [...] 0&subcat=0

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed