2009-09-14 18 views
1

Mes utilisateurs vont télécharger des fichiers avec une extension .EXP. Dans ColdFusion sur Windows 2003, j'utilise getPageContext(). GetServletContext(). GetMimeType() pour m'assurer que le fichier qu'ils téléchargent est du type mime correct, qui sera text/plain. Le problème que je rencontre est que, peu importe où j'inscris le mime-type sur le serveur, getPageContext(). GetServletContext(). GetMimeType() retournera vide car il ne connaît pas l'extension de fichier .EXP. Quel est le truc pour obtenir ColdFusion pour voir cette extension de fichier.Enregistrer un nouveau type mime dans ColdFusion (Java)

Répondre

2

FINALEMENT !!!!

Pour getPageContext() getServletContext() getMimeType() pour reconnaître le nouveau type de fichier, vous devez éditer le fichier:..

<ColdFusion-home>\runtime\lib\mime.types 

Dans mon cas, ce fichier a été localisé à:

C:\ColdFusion8\runtime\lib\mime.type 

J'ai ouvert le fichier de fichier et trouve cette ligne:

text/plain asc txt 

Tout ce que je devais faire était d'ajouter mon extension à la fin comme ceci:

text/plain asc txt exp 

Puis je redémarre le service ColdFusion et invoquer getPageContext() getServletContext() getMimeType() retourne le texte/ordinaire...

+0

Si quelqu'un connaît un moyen d'enregistrer un nouveau type MIME en utilisant Java et ne pas éditer le fichier directement, s'il vous plaît laissez-moi savoir. Bien que ce soit une solution, il ne sera pas possible de le faire sur un serveur partagé. – rip747

0

les types MIME pris en charge sont définis dans votre serveur Web, que ce soit IIS, Apache ou autre . Les types Apache MIME peuvent être configurés dans les fichiers mime.types dans le répertoire httpd/conf. La méthode getMimeTypes() communique avec le serveur Web et renvoie le type MIME associé pour le fichier.

http://chris.cfwebtools.com/index.cfm/2009/8/12/Securely-Serving-Files-via-CFContent

+0

J'ai effectivement essayé de ne pas le prendre en charge. – rip747

+0

@Henry: AFAIK, le type MIME que vous avez défini dans le serveur affecte uniquement les téléchargements, pas les téléchargements. – Tomalak

+0

Pour les téléchargements, le type MIME est fourni par le navigateur, je crois, et le navigateur détermine le type MIME par extension de fichier seulement, il n'est donc pas digne de confiance. – Henry

-1

Que diriez-vous de vérifier simplement les en-têtes de demande pour le type MIME? Vous obtiendrez une structure qui contient toutes les données envoyées par le client, y compris le type de contenu du fichier téléchargé. Dans tous les cas, faire confiance au type MIME ou à l'extension de fichier que le client vous envoie est dangereux, je préférerais vérifier le fichier avec d'autres moyens (RegEx, par exemple, ou un analyseur) pour m'assurer que c'est ce que vous voulez. attendre.

+0

en essayant d'invoquer GetRequestData() retourné et erreur indiquant qu'il s'agissait d'une fonction valide. – rip747

+0

Oups. Mon mauvais, j'ai foutu le nom de la fonction. Corrigée. – Tomalak

+0

Ouais. Down-votes non commentés sont les meilleurs. – Tomalak

Questions connexes