[Java / Servlet] Nom de fichiers french-like sous linux

Nom de fichiers french-like sous linux [Java / Servlet] - Java - Programmation

Marsh Posté le 10-10-2007 à 14:35:02    

Bonjour,
J'ai un petit souci avec les noms de fichiers que j'upload ou que je crée à partir de mes servlets sur un serveur linux.
Quand je fais la manip en local (tomcat & windows XP), ça fonctionne nickel :), mais quand je déploie l'appli sur le serveur linux
(Mandriva 2006), si le nom du fichier que je crée comporte des accents, linux me le renomme au format 8.3 :heink:  
 
Exemple de code de la servlet (simplifié pour aller au plus court):
 File doc = new File(".", "Développer en Java.pdf" );
 doc.createNewFile();
 
Sur le serveur, il me crée un fichier nommé DVV5BV~G.PDF  :??:  
Quand je veux faire un lien depuis une jsp pour consulter le fichier (<a href="...), doc.getName() me retourne "D?velopper en Java.pdf",
c'est déjà mieux que DVV5BV~G.PDF mais ça ne fonctionne pas...
 
J'ai essayé de changer les charset des jsp, de la servlet (request.setCharacterEncoding(...)), en utilisant UTF-8 ou ISO-8859-1,
c'est toujours pareil. Sur le serveur linux, le langage est Fr fr.
 
Le nom de fichier à 2 balles sur le serveur, c'est pas grave si doc.getName() peut me retourner le bon nom de fichier dans mes jsp.
Enfin dernière précision, je voudrais garder le nom de fichier d'origine (donc pas de renommage), parce que le but de la manip est
d'uploader des fichiers d'un réseau local sur le serveur web pour pouvoir les consulter depuis une appli web (puisque firefox empêche
l'ouverture de fichiers locaux depuis une page web, il faut bien faire autrement...).
 
Mon code doit être correct puisque ça fonctionne très bien en local, et la conf du tomcat réseau est la même que le tomcat en local (version 5.5).
 
Merci d'avance pour votre aide...

Reply

Marsh Posté le 10-10-2007 à 14:35:02   

Reply

Marsh Posté le 10-10-2007 à 14:41:55    

c'est pas linux qui fait ça.

Reply

Marsh Posté le 10-10-2007 à 15:09:52    

Tu dois avoir raison puisqu'on peut faire un touch éè.... sans souci sur le serveur.
Mais comme le code doit être correct et que le souci ne vient pas de linux, ... ça doit donc être tomcat le responsable. Mais j'ai beau retourner les fichiers de conf dans tous les sens, il n'y a rien qui concerne le langage, et ce sont les mêmes que pour mon tomcat local.

Reply

Marsh Posté le 17-10-2007 à 16:19:30    

ça y est!!!
En fait, c'est tomcat qui s'embrouillait. l'option n'est pas facile à trouver puisque par défaut il n'y a aucune valeur de précisée dans les fichiers de conf.
Il faut modifier le fichier startup.sh (unix) ou startup.bat (windows) en y ajoutant la ligne suivante:
CATALINA_OPTS="-Dfile.encoding=ISO8859-1"

Reply

Marsh Posté le 17-10-2007 à 16:27:27    

peut-être serait-il judicieux d'utiliser de l'UTF-8 ?
Je trouve un poil bizarre quand même que sur linux ça ait basculé sur 8.3 ...

Reply

Sujets relatifs:

Leave a Replay

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