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

Servlets/JSP Java Discussion :

[Servlet] Fichier xls prot�g� apres envoi au client


Sujet :

Servlets/JSP Java

  1. #1
    Membre confirm� Avatar de romdelf
    Profil pro
    Inscrit en
    F�vrier 2005
    Messages
    91
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 91
    Par d�faut [Servlet] Fichier xls prot�g� apres envoi au client
    Bonjour,
    Je ne peux pas ouvrir un fichier Excel c�t� client. Je cr�e un fichier Excel cot� serveur (pour info, j'utilise JasperReport qui transforme un rapport en fichier xls). Je cr�e un File "test.xls" cot� serveur, et Jasper met automatiquement le code Excel � l'interieur. J'ai test�, cot� serveur le fichier marche, je peux le lire.
    Ensuite, je mets le contenu du fichier dans un StringBuffer � l'aide d'un BufferedReader. Puis je mets ce buffer dans le output ma servlet.

    Mais lorsque je lance mon appli et que j'arrive au moment ou la servlet doit me retourner mon fichier xls (IE ouvre automatiquement Excel), j'ai le message suivant :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    Impossible d'acceder au fichier 'test.xls'. Le fichier peut etre en lecture seule, ou vous essayer d'acceder à un emplacement en lecture seule. 
    Il est egalement possible que ..... le serveur ne reponde pas.
    Ensuite, IE me propose de le sauvegarder. Je le place sur le bureau. Il n'est pas vide (440ko). Mais l�, pareil, impossible de l'ouvrir. Meme message de protection en lecture seule.

    Existe t'il un probleme avec les fichiers Excel? On dirait que la copie que je fais cot� serveur pointe toujours vers le fichier cot� serveur. Je ne trouve pas cela normal...
    Est ce que quelqu'un a une id�e?
    Merci[/code]

  2. #2
    Membre chevronn�
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Par d�faut
    Bonjour,

    mets le code de ta servlet.

  3. #3
    Membre confirm� Avatar de romdelf
    Profil pro
    Inscrit en
    F�vrier 2005
    Messages
    91
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 91
    Par d�faut
    Pour info, j'utilise Struts :
    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
    24
    25
    26
    27
    28
    29
     
     
    public class SendAction extends Action {
    public ActionForward execute(ActionMapping mapping,ActionForm form,
    		HttpServletRequest request,HttpServletResponse response) throws Exception {
    	...
    	new CallJasper().execute(request, response);	
    	return null;
    }
     
     
    public class CallJasper {
    public void execute(HttpServletRequest request, HttpServletResponse response) {
    	...
    	StringBuffer sbuf = new StringBuffer();	
    	PrintWriter writer = response.getWriter();
    	File destFile = File.createTempFile("test", ".xls");
    	exporter.exportReport(); //Jasper rempli le fichier
     
    	FileReader writeflux = new FileReader(destFile);
    	BufferedReader buffer = new BufferedReader(writeflux);
    	String s = "";
    	while ((s = buffer.readLine()) != null)
    		sbuf.append(s);
    	buffer.close();
    	writeflux.close();
    	writer.write(sbuf.toString());
    }
    }
    Voil�.
    PS: j'ai remplac� le fichier par un fichier temporaire cot� serveur...

  4. #4
    Membre chevronn�
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Par d�faut
    Le probleme vient de la facon de lire le fichier Excel (BufferedReader).
    Le code suivant doit marcher

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
                response.setContentType("application/vnd-ms-excel");
                response.setHeader("Content-disposition", "attachment; filename=rapport.xls");
                PrintWriter writer = response.getWriter();             
                FileInputStream fis = new FileInputStream(destFile);  
                int c=-1;
                while ((c = fis.read()) != -1)
                    writer.print((char)c); 
     
                fis.close();
                writer.close();

  5. #5
    Membre confirm� Avatar de romdelf
    Profil pro
    Inscrit en
    F�vrier 2005
    Messages
    91
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 91
    Par d�faut
    MERCI mille fois!!!!
    1 semaine que je cherchais � savoir pourquoi....

    Serait-il possible que tu m'expliques la diff�rence entre nos 2 m�thodes? Est-ce un probleme de caract�res sp�ciaux?
    Ce n'est quand meme pas le fait de lire ligne par ligne plutot que par caractere...

    Merci encore!

  6. #6
    Membre chevronn�
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Par d�faut
    Non je dirais que dans un cas il lit des cha�nes de caract�res et dans l'autre il traite le fichier comme un binaire.

    Excel n'�tant pas � proprement parler au format texte.

  7. #7
    Membre confirm� Avatar de romdelf
    Profil pro
    Inscrit en
    F�vrier 2005
    Messages
    91
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 91
    Par d�faut
    OK!
    Merci quand meme pour ton aide...

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [AC-2007] Ouvrir fichier XLS prot�g� par un mot de passe
    Par docleka dans le forum VBA Access
    R�ponses: 3
    Dernier message: 19/09/2012, 12h49
  2. supprimer un fichier en local apr�s envoi en ftp
    Par tomas_o_malley dans le forum Windows
    R�ponses: 6
    Dernier message: 28/09/2009, 09h10
  3. R�ponses: 1
    Dernier message: 04/06/2007, 11h34
  4. Rechargement de page apr�s envoi de fichier
    Par marieR dans le forum Struts 1
    R�ponses: 11
    Dernier message: 30/01/2007, 14h40
  5. R�ponses: 4
    Dernier message: 19/07/2006, 12h29

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