Programmation » [PHP] Comment envoyer le bon type MIME
Catégorie:  
   
[PHP] Comment envoyer le bon type MIME
Publié le 23/04/2007 @ 22:02:50,
Par gizmo
Bon, j'ai un problème de type MIME avec les fichiers texte. Quand c'est un fichier binaire, c'est simple, sa signature me donne le bon type mime à tous les coups. Par contre, quand j'ai un fichier de texte, je me retrouve systématiquement avec text/plain (et l'encodage), alors que pour un fichier css, par exemple, c'est text/css que je dois renvoyer au browser. Y a pas une solution miracle en PHP pour renvoyer le bon type?

Et le premier qui me sort un truc à base de découpe du nom de fichier se prend une mandale :oh:
Concept vivant.
   
[PHP] Comment envoyer le bon type MIME
Publié le 23/04/2007 @ 23:12:13,
Par cauet
C'est pas avec une menace que tu aura des réponses à mon avis :joce:
Tu va effrayer tout le monde :ddr555:
   
[PHP] Comment envoyer le bon type MIME
Publié le 23/04/2007 @ 23:12:38,
Par max
c'est php qui génère ton fichier css ?
Trololo
   
[PHP] Comment envoyer le bon type MIME
Publié le 23/04/2007 @ 23:21:10,
Par Keeper
je comprends pas très bien la question en fait
   
[PHP] Comment envoyer le bon type MIME
Publié le 23/04/2007 @ 23:28:31,
Par Altar
Pareil :oh:
   
[PHP] Comment envoyer le bon type MIME
Publié le 23/04/2007 @ 23:37:09,
Par gizmo
non, c'est pas php qui génère mon fichier. Le fichier existe mais n'est pas directement accessible par une url. Il y a d'abord des check de droit et autres opérations avant de renvoyer le fichier. Du coup, je passe par un readfile() mais je dois d'abord renvoyer dans le header le content-type du fichier. Or pour un svg, un css ou un txt, le contentType à renvoyer n'est pas le même mais bien le mimeType que me donne la commande système "file"
Concept vivant.
   
[PHP] Comment envoyer le bon type MIME
Publié le 23/04/2007 @ 23:39:17,
Par antp
Je ne vois pas très bien comment on peut deviner le type d'un fichier "texte" autrement que par son extension. Du CSS, Javascript ou autre ça se ressemble fort quand même niveau contenu...
mes programmes ·· les voitures dans les films ·· champion des excuses bidons
   
[PHP] Comment envoyer le bon type MIME
Publié le 23/04/2007 @ 23:42:59,
Par max
tu peux récupérer le type du fichier externe dans le header de la réponse et le passer lors de l'envoie ?

Trololo
   
[PHP] Comment envoyer le bon type MIME
Publié le 24/04/2007 @ 00:09:59,
Par philfr
Je ne vois pas très bien comment on peut deviner le type d'un fichier "texte" autrement que par son extension. Du CSS, Javascript ou autre ça se ressemble fort quand même niveau contenu...


T'as osé parler de l'extension, tu mérites sans doute la mandale... :grin:


Sinon, ben +1000. La commande file connaît le type des fichiers par leur "magic" (quelques bytes du début) qui n'existe pas pour tous les types.

Si un fichier texte a un magic, c'est en général qu'il a un commentaire au début (genre #!/bin/bash pour un shell script).
   
[PHP] Comment envoyer le bon type MIME
Publié le 24/04/2007 @ 08:41:55,
Par blietaer
<?
$fichier_xls=$_GET['file_name'];

$fI="xls";

$sendmime = $mimetypes[$fI["fileext"]];
if ($sendmime == "") { $sendmime = "application/stream"; }

header ("HTTP/1.1 200 OK");
header("Content-type: ".$sendmime);
header("Content-Length: $tailleFichier");
header('Content-Transfer-Encoding: binary');
header("Content-Disposition: attachment; filename=\"$fichier_xls\"");
//readfile($fichier);
$fp=fopen($fichier_xls, "r");
fpassthru($fp);
flush();
?>
Et au besoin s'arrêter.
   
[PHP] Comment envoyer le bon type MIME
Publié le 24/04/2007 @ 11:44:40,
Par zion
http://fr.php.net/manual/en/function.mime-content-type.php

Voir la nouvelle fonction :smile:
Je suis le Roy :ocube:
   
[PHP] Comment envoyer le bon type MIME
Publié le 24/04/2007 @ 12:02:33,
Par gizmo
j'ai vu, mais ni cette fonction, ni son hypothetique remplacante ne sont dispo sur la plupart des hebergeurs, donc je ne peux pas les utiliser. En fait, j'esperais un systeme miracle, un peu comme quand OS X reconnait le type du fichier meme apres lui avoir changer l'extension, mais en fait ils gardent cela dans des meta-donnes, donc c'est foutu.

Va faloir que je me paluche une table de correspondance a la main :ohwell:
Concept vivant.
   
[PHP] Comment envoyer le bon type MIME
Publié le 24/04/2007 @ 12:05:47,
Par philfr
Va faloir que je me paluche une table de correspondance a la main :ohwell:


Ou que tu ne changes pas l'extension...
   
[PHP] Comment envoyer le bon type MIME
Publié le 24/04/2007 @ 12:08:14,
Par gizmo
euh, ouais mais non, parce que .htm, .html doivent avoir le meme contentType retourne, et .xhtml pourrait egalement l'avoir si c'est du XHTML 1.0
Concept vivant.
   
[PHP] Comment envoyer le bon type MIME
Publié le 24/04/2007 @ 12:13:06,
Par zion
Va faloir que je me paluche une table de correspondance a la main :ohwell:


Ou que tu changes d'hébergeur :dawa:

Chez ovh ils acceptent le dl() donc à la limite tu pourrais même loader l'extension kivabien si ils l'ont pas activées
Je suis le Roy :ocube:
   
[PHP] Comment envoyer le bon type MIME
Publié le 24/04/2007 @ 12:14:07,
Par gizmo
Le principe, c'est que je ne veux pas etre dependant de l'hebergeur, vu que c'est destine a un libre usage :oh:
Concept vivant.
   
[PHP] Comment envoyer le bon type MIME
Publié le 24/04/2007 @ 12:17:44,
Par zion
  1. echo system("file -i -b file.pdf");


Comment ça non? :ddr555:

Il te faut rien non plus, une fonction qui existe sans la moindre extension et avec safe mode :ddr555:

Alors oui faudra le refaire à la main :itm:
Je suis le Roy :ocube:
Répondre - Catégorie:  
Informaticien.be - © 2002-2024 AkretioSPRL  - Generated via Kelare
The Akretio Network: Akretio - Freedelity - KelCommerce - Votre publicité sur informaticien.be ?