IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

[JBoss 5] [lien HTML file://] Télécharger fichier d'un serveur de doc partagé


Sujet :

JSF Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 143
    Points : 68
    Points
    68
    Par défaut [JBoss 5] [lien HTML file://] Télécharger fichier d'un serveur de doc partagé
    Bonjour

    Je développe une application avec JSF. Mon application permet de créer des fichiers csv ou txt contenant des données extraites d'une base suite à une demande utilisateur. Ces fichiers de résultat sont stockés sur un serveur distant accessible dans mon code Java via des chemin du type : //leNomDuServer/leRepertoireParatge/.

    Ensuite je propose une interface JSF dans laquelle les utilisateurs peuvent suivre l'état d'avancement de chaque extraction de données qu'ils ont sollicitée. Une fois l'extraction terminée, un lien est proposé sur l'interface afin de télécharger le fichier de résultat. Je rappelle donc que le fichier de résultat ne se trouve pas dans mon application mais sur un serveur de partage de documents (//leNomDuServer/leRepertoireParatge/monFichierDeResultat.csv).

    Jusqu'ici je déployais l'application avec JBoss 4.3.2. J'avais ajouté un Context dans la configuration de JBOSS_HOME/server/monServer/deployboss-web.deployer/server.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <Context path="/resultFile" debug="0" reloadable="true" docBase="\\leNomDuServer\leRepertoireParatge" />
    Dans ma page JSF, je pouvais dès lors créer un lien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <h:outputLink value="/resultFile/#{monBean.fileName}">
        <h:outputText value="#{monBean.fileName}" />
    </h:outputLink>
    Or, j'ai décidé de passer à JBoss 5. J'ai donc installé JBoss 5.0.1 en début de semaine. Mais ce dernier ne tolère pas l'élément <Context> dans le <Host> du server.xml.

    J'ai donc essayé d'accéder au fichier directement avec le lien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <h:outputLink value="file://///leNomDuServer/leRepertoireParatge/#{monBean.fileName}">
        <h:outputText value="#{monBean.fileName}" />
    </h:outputLink>
    Ceci marche très bien sur Internet Explorer mais pas sous Firefox. Ce dernier considère que faire un lien du type file:// dans une page du type http:// est une faille de sécurité !

    Bref ! Me voilà dans une impasse. Je sollicite votre aide pour soit arriver à créer un alias vers le serveur de document grâce à une configuration de JBoss 5 ou peut-être m'indiquer comment créer un lien dans ma page JSF vers le fichier du serveur de document en toute sécurité.

    Merci d'avance pour votre aide

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 143
    Points : 68
    Points
    68
    Par défaut
    Je m'en suis sorti en accédant au fichier dans la servlet. Je lis le contenu du fichier et je place ce contenu dans le flux de sortie de la Servlet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    	private void putFileInResponse(final HttpServletResponse response, final String filename) throws IOException {
    		response.setContentType("application/download");
    		response.setHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");
     
    		final File file = new File("chemin/" + filename);
    		response.setContentLength((int) file.length());
     
    		final FileInputStream fis = new FileInputStream(file);
    		final OutputStream os = response.getOutputStream();
    		byte[] fileContent = new byte[4096];
    		int r = 0;
    		while (r >= 0) {
    			r = fis.read(fileContent);
    			os.write(fileContent);
    		}
    		os.flush();
    		os.close();
    	}

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. liens HTML -> exécuter un fichier
    Par eZula dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 20/11/2008, 08h38
  2. problème lien (a href ="file:") vers fichier
    Par Pynuch dans le forum Firefox
    Réponses: 8
    Dernier message: 09/04/2008, 15h10
  3. charger un fichier avec <html:file
    Par air75 dans le forum Struts 1
    Réponses: 5
    Dernier message: 26/03/2008, 09h24
  4. Problème lien de type file avec fichiers locaux
    Par tomburn dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 11/01/2007, 16h03
  5. [VBA] Importer fichier texte d'un lien HTML dans ACCESS
    Par VICTOIRE44 dans le forum VBA Access
    Réponses: 3
    Dernier message: 04/12/2006, 10h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo