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

GWT et Vaadin Java Discussion :

Ouvrir un fichier sans ouvrir de fenêtre


Sujet :

GWT et Vaadin Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 45
    Par défaut Ouvrir un fichier sans ouvrir de fenêtre
    Salut à tous.
    Voilà mon problème : je récupère depuis le serveur un stream, que j'aimerais ouvrir depuis le client. Je voudrais que cela fonctionne comme un clic sur un lien, c'est à dire sans ouvrir de nouvelle fenêtre, mais en proposant une pop-up "Enregistrer sous, Ouvrir, Annuler". Comment puis-je faire ? Cette action aurait lieu lors d'un double clic dans une liste, en faisant appel à une servlet.
    Merci à tous !

  2. #2
    Membre émérite
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Par défaut
    Salut,

    Tu veut dire un fichier par exemple? Est ce qu'il ne suffit pas de creer un lien vers le fichier?

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 45
    Par défaut
    Oui au final ça revient à ouvrir un fichier.
    Le problème, c'est que j'ai une liste de noms de fichiers dans une ListGrid (qui ne peuvent pas être des liens), et quand je double clique sur l'un d'entre eux, je fais un Window.open("mon_appel_de_servlet","bla","").
    Ce que je voudrais faire c'est pouvoir "simuler" le clic sur un lien (avoir le même résultat quoi).

  4. #4
    Membre émérite
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Par défaut
    ListGrid, kesako ? Tu peut pas mettre de code HTML là dedans?

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 62
    Par défaut
    il faut que tu renvoie le stream dans une reponse http et mettre un type mime offrant ces choix, le problème c'est que c'est dépendant de la conf du poste client

  6. #6
    Membre confirmé

    Inscrit en
    Juin 2003
    Messages
    229
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juin 2003
    Messages : 229
    Par défaut
    Le principe est assez simple :
    Ouvrir le stream, l'envoyer au client, mais en précisant auparavant les bons headers HTTP.

    Pour ma part, j'ai choisi pour faire ça, de passer par une servlet déclarée dans le package "server" de mon appli, qui correspond à l'implémentation des services asynchrones (ServerImpl.java)

    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
    20
    21
    22
    23
     
    package com.application.server;
     
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.util.*;
     
    public class OpenAttachment extends HttpServlet {
    	final static long serialVersionUID = 1;
     
    	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		int id = Integer.parseInt(request.getParameter("id"));
     
    		ServletOutputStream out = response.getOutputStream(); 
    		Attachment a = r.getAttachment(id);
    		response.setContentType(a.getContentType()); 
    	        response.setHeader("Content-Disposition", "attachment;filename=\"" + a.getFilename() + "\"");
     
    	        out.write(a.getData());
    		out.close();
    	}
    }
    Ici, a.getContentType() retourne le type MIME du stream envoyé (application/pdf, application/word, ...), et a.getData() retourne le stream sous forme de tableau d'octets (byte[])

    Ensuite, dans l'application GWT, j'ouvre cette page ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Window.open("OpenAttachment?id=" + id ,"Attachment", "");
    où id est un identfiant du fichier à télécharger.

    Enfin, je déclare la servlet dans le descripteur (application.gwt.xml)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <servlet path='/OpenAttachment' class='com.application.server.OpenAttachment'/>
    et c'est tout.

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

Discussions similaires

  1. Lire partie de fichier sans ouvrir le fichier
    Par calitom dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 17/01/2013, 17h04
  2. Réponses: 18
    Dernier message: 03/10/2011, 10h48
  3. Comment ouvrir un fichier sans ouvrir le dialogue ?
    Par chacarre dans le forum Débuter
    Réponses: 2
    Dernier message: 24/04/2008, 18h34
  4. [Excel] ouvrir un fichier sans le voir à l'écran
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 10/01/2006, 15h04
  5. Automation excel - ouvrir un fichier sans classeur
    Par Celia1303 dans le forum Access
    Réponses: 3
    Dernier message: 23/11/2005, 20h23

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