Subject: Re: Encore (le retour) des problèmes de typ e mime
From: Eric Brison
Date: Thu, 22 May 2008 18:22:59 +0200

Tony GALMICHE a écrit :
> Jérôme Augé a écrit :
>> Le 22 mai 08 à 13:02, Tony GALMICHE a écrit :
>>
>>> Je viens à nouveau de rencontrer des problèmes de type mime.
>>>
>>> Dans une famille, j'ai un tableau de pièces jointes contenant 
>>> uniquement des mail enregistrés avec Thunderbird au format .eml
>>>
>>> Quand j'interroge la famille, le type mime est bien le même pour 
>>> toutes les pièces jointes :
>>>
>>> freedom=# select title,dao_annexcom from doc1150 where id=51786;
>>> title  |    dao_annexcom
>>> --------+---------------------
>>> 006.08 | message/rfc822|598
>>> [...]
>>>
>>> Mais quand j'utilise "file -i" dans le vault, le résultat n'est pas 
>>> toujours le même :
>>> 1/598.eml: text/x-mail; charset=iso-8859-1
>>> [...]
>>>
>>> Et suite à la modication de l'autre jour, toutes les pièces jointes 
>>> de type " text/plain; charset=iso-8859-1" s'ouvrent dans le 
>>> navigateur en code source ce qui n'est pas très lisible pour 
>>> l'utilisateur final :-(
>>>
>>> Le problème vient donc de la commande "file -i" qui ne retourne pas 
>>> toujours le bon résultat.
>>> -> Est-il possible de paramétrer son comportement pour que toutes 
>>> les extensions .eml soient considérées comme des messages ?
>>
>> Tu dois pouvoir forcer le type mime d'un fichier, lors de son 
>> stockage dans le Vault, en modifiant la fonction `getSysMimeFile()' 
>> dans le fichier `Lib.FileMime.php'. Il y a déjà des règles dedans 
>> pour gérer le cas des fichiers d'OpenOffice qui sont normalement 
>> détectés comme étant des archives ZIP par `file'.
>>
>>   if (preg_match('/\.eml$/i',$fn)) return 'message/rfc822';
> Il y a quand même un truc qui me chiffonne avec cette histoire de type 
> mime :
> -> Pourquoi le type mime est-il correctement reconnu et enregistré au 
> niveau de la famille et que le résultat n'est pas le même dans le Vault ?
> -> Pourquoi le mécanisme pour identifier le type mime est-il différent 
> pour le Vault et pour la famille ?
Tout simplement c'est qu'au temps des dinosaures, le vault ne stockait 
pas le type mime et seul le type mime du client était mémorisé au niveau 
de freedom. Mais il s'est avéré que le type mime du client n'était pas 
suffisamment fiable puisque dépendant du système client. Donc le vault 
s'est dit : je vais recalculer le type mime. Ceci afin d'avoir une 
référence unique de calcul du type.

Freedom, lui, a gardé son type mime pour des raisons de compatibilité 
avec les anciennes versions mais normalement il n'en a plus besoin 
réellement.

Eric.
>