web-dev-qa-db-fra.com

Quel est le type MIME pour les fichiers TTF?

Je ne trouve pas le type MIME correct pour les polices TrueType. J'en ai besoin car j'utilise la classe de téléchargement de fichiers (CodeIgniter) pour télécharger des fichiers, et je souhaite autoriser uniquement le téléchargement de TTF. J'ai essayé ceci:

'ttf'   =>  'font/ttf'
'ttf'   =>  'font/truetype'

Sans succès.

Des idées ?

36
CappY

TTF n'a pas de type MIME affecté. Vous devrez utiliser le plus général application/octet-stream, qui est utilisé pour indiquer des données binaires sans type MIME affecté.

26
Ori

J'ai vu font/ttf et application/x-font-ttf utilisé comme types MIME pour TTF. Mais si vos fichiers sont téléchargés en tant que application/octet-stream et vous ne voulez pas simplement faire confiance au .ttf extension de fichier (ou si vous souhaitez gérer des fichiers sans extension), vous devrez vérifier le contenu du fichier pour voir s'il s'agit de fichiers TTF. Le fichier UNIX magic indique qu'un TTF commencera par les 5 octets

00 01 00 00 00

(C'est 00 01 00 00 de la version de table GDEF et le premier 00 du décalage de la table GlyphClassDef.)

Si votre fichier commence par ces 5 octets, c'est probablement un TTF.

17
dkarp

Depuis février 2017, RFC 8081 ajoute les types de médias font/*, qui sont également répertoriés dans la liste IANA Media Types . font/ttf est dans cette liste. Les navigateurs peuvent mettre un certain temps à se rattraper.

13
George Helyar

Je sais que c'est assez ancien, mais personne ne semble avoir fourni d'exemple concret. Nous voici donc pour les générations futures:

J'ai eu le même problème avec Apache2 et Chrome. Chrome avertirait qu'un fichier envoyé avec le type mime d'application/octet-stream était vraiment un fichier de police - ce qu'il était.

Le correctif pour moi était d'ajouter la ligne suivante dans mon fichier de configuration Apache2:

Application AddType/x-font-ttf .ttf

ps:

J'avais essayé de mettre à jour le fichier magique mais cela n'a pas fonctionné après les rechargements complets d'Apache2. Les correspondances que j'ai essayées (en utilisant de vrais caractères de tabulation entre les champs et selon les modèles magiques référencés ci-dessus) sont ci-dessous:

 # True Type fonts 
 0 chaîne\000\001\000\000\000 application/x-font-ttf 
 0 chaîne\000\001\000\000\000 Application mime de données de police TrueType/x-font-ttf 
11
Michael Mikowski

Je n'ai aucune expérience avec codeigniter mais j'ai tendance à croire que le mimetype correct est:

application/x-font-ttf

Je ne sais pas si cela résout votre problème

3
rene

Il est temps de faire un débogage! Si quelque chose ne fonctionne pas, la meilleure option est d'ouvrir le code et de se salir les mains.

Ouvrez la bibliothèque Uploads (système/bibliothèques/Upload.php) et recherchez ce morceau de code autour de la ligne 200:

    // Set the uploaded data as class variables
    $this->file_temp = $_FILES[$field]['tmp_name'];
    $this->file_size = $_FILES[$field]['size'];
    $this->file_type = preg_replace("/^(.+?);.*$/", "\\1", $_FILES[$field]['type']);
    $this->file_type = strtolower(trim(stripslashes($this->file_type), '"'));
    $this->file_name = $this->_prep_filename($_FILES[$field]['name']);
    $this->file_ext  = $this->get_extension($this->file_name);
    $this->client_name = $this->file_name;

Vous verrez que $ this-> file_type y est défini. var_dump () et voyez ce qu'il contient.

Il est probable que vous ayez un type MIME obscur que CodeIgniter ne connaît pas. Mettez ce type MIME dans config/mimes.php et cela devrait fonctionner correctement.

Lorsque vous l'avez fait fonctionner et acceptez cette réponse, veuillez commenter avec le type MIME que vous avez utilisé et je l'ajouterai à CodeIgniter Reactor pour vous assurer que personne d'autre ne reste bloqué.

3
Phil Sturgeon

Pouvez-vous essayer ceci:

application/font-sfnt

Comme je peux le voir dans iana, l'en-tête correct est celui-ci pour TTF: http://www.iana.org/assignments/media-types/application/font-sfnt

3
Vasilis Vasilatos