Comment ouvrir fichier (bmp, txt) avec java
algod
Messages postés
165
Date d'inscription
Statut
Membre
Dernière intervention
-
algod Messages postés 165 Date d'inscription Statut Membre Dernière intervention -
algod Messages postés 165 Date d'inscription Statut Membre Dernière intervention -
Bonjour
Je reprends une application (gestion de bugs) où les utilisateurs peuvent mettre des pièces jointes (image, txt) dans leur signalement. Ces pièces jointes sont enregistrées dans une base de données (blob).
Lorsque le développeur veut voir la pièce jointe, celle-ci est copiée sur son disque (personnellement je l'aurais mise en mémoire, mais c'est pas moi qui est fait le code et je peux pas le changer) puis la pièce jointe doit être ouverte.
A partir de la servlet, j'arrive à lancer une application ( par exemple notepad ou paint) mais pas le fichier en lui même. Pour cela j'utilise : Runtime.getRuntime().exec("C:\\WINDOWS\\notepad.exe");
A partir de la page jsp, je n'arrive pas à ouvrir le fichier (Warning, erreur sur la page : accès refusé avec IE7) avec un javascript (fait par mon prédécesseur) :
function redirect(){
var zip = '<%=form.getNom_fichier()%>';
parent.location=zip;
}
Dans form.getNom_fichier() il y a le lien vers le fichier ( "C:\toto\mimi.txt" )
Avec Firefox2, j'ai le message : "Firefox ne sait pas ouvrir cette adresse car le protocole (d) n'est associé à aucun programme".
Le lien vers le fichier apparaît aussi dans un champ texte et quand on recopie ce lien dans un onglet, le fichier s'ouvre dans l'onglet.
Est-ce que quelqu'un aurait une idée, que ce soit dans la servlet ou dans la page jsp ?
Je travaille sous websphere(eclipse) avec struts (je débute avec struts).
Merci.
P.S. : Je ne pourrais répondre aux questions qu’à partir de demain matin.
Je reprends une application (gestion de bugs) où les utilisateurs peuvent mettre des pièces jointes (image, txt) dans leur signalement. Ces pièces jointes sont enregistrées dans une base de données (blob).
Lorsque le développeur veut voir la pièce jointe, celle-ci est copiée sur son disque (personnellement je l'aurais mise en mémoire, mais c'est pas moi qui est fait le code et je peux pas le changer) puis la pièce jointe doit être ouverte.
A partir de la servlet, j'arrive à lancer une application ( par exemple notepad ou paint) mais pas le fichier en lui même. Pour cela j'utilise : Runtime.getRuntime().exec("C:\\WINDOWS\\notepad.exe");
A partir de la page jsp, je n'arrive pas à ouvrir le fichier (Warning, erreur sur la page : accès refusé avec IE7) avec un javascript (fait par mon prédécesseur) :
function redirect(){
var zip = '<%=form.getNom_fichier()%>';
parent.location=zip;
}
Dans form.getNom_fichier() il y a le lien vers le fichier ( "C:\toto\mimi.txt" )
Avec Firefox2, j'ai le message : "Firefox ne sait pas ouvrir cette adresse car le protocole (d) n'est associé à aucun programme".
Le lien vers le fichier apparaît aussi dans un champ texte et quand on recopie ce lien dans un onglet, le fichier s'ouvre dans l'onglet.
Est-ce que quelqu'un aurait une idée, que ce soit dans la servlet ou dans la page jsp ?
Je travaille sous websphere(eclipse) avec struts (je débute avec struts).
Merci.
P.S. : Je ne pourrais répondre aux questions qu’à partir de demain matin.
A voir également:
- Comment ouvrir fichier (bmp, txt) avec java
- Comment ouvrir un fichier epub ? - Guide
- Comment ouvrir un fichier bin ? - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Comment ouvrir un fichier dat - Guide
- Comment ouvrir un fichier docx ? - Guide
6 réponses
J'ai trouvé une solution (partielle), j'utilise l'invite de commande dans la servlet :
String lienFichier = demandeFormBean.getNom_fichier();
if (!lienFichier.contains(" "))
{
Runtime r = Runtime.getRuntime();
r.exec("cmd /c start " + lienFichier);
}
le seul problème, c'est que s'il y a un espace dans le nom du fichier, ca ne lance pas le fichier.
C'est pas grave, je ferai avec.
String lienFichier = demandeFormBean.getNom_fichier();
if (!lienFichier.contains(" "))
{
Runtime r = Runtime.getRuntime();
r.exec("cmd /c start " + lienFichier);
}
le seul problème, c'est que s'il y a un espace dans le nom du fichier, ca ne lance pas le fichier.
C'est pas grave, je ferai avec.
Merci de ta réponses mais ca marche pas.
Avec des " l'invite de commande s'ouvre et ne fait rien et avec des ' ca change rien.
Ce que je vais essayer, c'est lors de l'enregistrement, de remplacer les " " par des "_" .
Avec des " l'invite de commande s'ouvre et ne fait rien et avec des ' ca change rien.
Ce que je vais essayer, c'est lors de l'enregistrement, de remplacer les " " par des "_" .
Salut,
Runtime r = Runtime.getRuntime();
r.exec("cmd /c start " + lienFichier);
Essayer :
r.exec(new String[]
{"cmd\\c start", lienFichier});
Par exemple ceci:
runtime.exec(new String[]
{ "C:\\Program Files\\Adobe\\Reader 8.0\\Reader\\AcroRd32.exe",
"C:\\Mes programmes\\T07GR-F.pdf"});
fonctionne parfaitement.
Cordialement
Dan
Runtime r = Runtime.getRuntime();
r.exec("cmd /c start " + lienFichier);
Essayer :
r.exec(new String[]
{"cmd\\c start", lienFichier});
Par exemple ceci:
runtime.exec(new String[]
{ "C:\\Program Files\\Adobe\\Reader 8.0\\Reader\\AcroRd32.exe",
"C:\\Mes programmes\\T07GR-F.pdf"});
fonctionne parfaitement.
Cordialement
Dan
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
merci
j'ai essayé :
r.exec(new String[] {"C:\\Program Files\\Adobe\\Acrobat 7.0\\Reader\\AcroRd32.exe", "C:\\Temp\\fic a ouvrir.pdf"}); et ca fonctionne très bien r.exec(new String[]{"C:\\Program Files\\Adobe\\Acrobat 7.0\\Reader\\AcroRd32.exe",lienFichier }); aussi d'ailleurs
mais r.exec(new String[] {"cmd\\c start", "C:\\Temp\\fic a ouvrir.pdf"}); ne fonctionne pas, ainsi que r.exec(new String[] {"cmd\\c start", lienFichier});
Je pourrais faire une boucle pour tester l'expension et mettre les liens vers les applications à ouvrir, mais l'utilisateur n'aura pas forcément installer l'application sur son poste où à l'endroit que je désignerai.
Je vais laisser (pour le moment) comme c'est, en n'ouvrant que ceux qui n'ont pas d'espace dans le nom et indiquer le chemin pour les autres. Y a d'autres petit bug en attente.
Merci a tous pour vos réponses.
j'ai essayé :
r.exec(new String[] {"C:\\Program Files\\Adobe\\Acrobat 7.0\\Reader\\AcroRd32.exe", "C:\\Temp\\fic a ouvrir.pdf"}); et ca fonctionne très bien r.exec(new String[]{"C:\\Program Files\\Adobe\\Acrobat 7.0\\Reader\\AcroRd32.exe",lienFichier }); aussi d'ailleurs
mais r.exec(new String[] {"cmd\\c start", "C:\\Temp\\fic a ouvrir.pdf"}); ne fonctionne pas, ainsi que r.exec(new String[] {"cmd\\c start", lienFichier});
Je pourrais faire une boucle pour tester l'expension et mettre les liens vers les applications à ouvrir, mais l'utilisateur n'aura pas forcément installer l'application sur son poste où à l'endroit que je désignerai.
Je vais laisser (pour le moment) comme c'est, en n'ouvrant que ceux qui n'ont pas d'espace dans le nom et indiquer le chemin pour les autres. Y a d'autres petit bug en attente.
Merci a tous pour vos réponses.