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 :

Internet explorer 6 bloque le téléchargement


Sujet :

Servlets/JSP Java

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 106
    Points : 182
    Points
    182
    Par défaut Internet explorer 6 bloque le téléchargement
    Bonjour

    Je maintiens une application web utilisation Servlet, Jsp.
    J'ai récupéré sur le net le moyen (dans une servlet) de télécharger un fichier et de l'envoyer vers le client.
    Mon problème est que cela marche bien sur les navigateurs de test (Firefox, Chrome, ....) mais pas sur Internet Explorer 6 (ni sur la 7), j'ai le message classique disant que Internet Explorer a bloqué le téléchargement pour raisons de sécurité, bla bla ...

    J'ai beau utiliser les astuces trouvées ici et là pour empêcher de voir le bandeau mais cela ne marche pas.

    Je suis bloqué car mes clients ne "peuvent/veulent" utiliser que IE6
    Si vous avez une solution, je suis preneur

    Merci

  2. #2
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Bonjour,

    Ton fichier a-t-il une extension particulière comme .exe, .bat ou autres?
    Bien le bonjour chez vous
    Jowo

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 106
    Points : 182
    Points
    182
    Par défaut
    Merci de me répondre

    Le fichier est un fichier Catia avec l'extension .catPart

  4. #4
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Quel Content-Type renvois-tu pour ce type de fichier?

    As-tu pu tester avec un autre navigateur que IE chez le client?

    Ton client a probablement un anti-virus, voir avec lui s'il ne pose pas de problème.
    Bien le bonjour chez vous
    Jowo

  5. #5
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 106
    Points : 182
    Points
    182
    Par défaut
    J'utilise "application/octet-stream" comme Content-Type

    Toutes les personnes qui utilisent IE ont ce problème (clients, collègues)

  6. #6
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Je n'ai plus de IE6 sous la main mais ne peut-on pas lui indiquer qu'un site est fiable (menu ouitils >> Internet Options >> onglet securité)?

    As-tu essayé avec l'extension .txt ou un autre mime-type comme application/catia?
    Bien le bonjour chez vous
    Jowo

  7. #7
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 106
    Points : 182
    Points
    182
    Par défaut
    >menu ouitils >> Internet Options >> onglet securité
    J'ai fait pas mal de manip mais rien à faire, je n'y suis pas arrivé


    >As-tu essayé avec l'extension .txt ou un autre mime-type comme >application/catia?
    Non mais j'ai aussi le bandeau avec d'autres content-type comme application/msword

  8. #8
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 106
    Points : 182
    Points
    182
    Par défaut
    Bonjour Jowo

    Ca marche, j'arrive bien à télécharger ton fichier.
    Qu'est ce qui pourrait empêcher de le faire dans mon appli?

  9. #9
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Voici le code en PHP
    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
    <?php
     if(strstr($_SERVER["HTTP_USER_AGENT"],"MSIE")==false) {
      header("Content-type: application/octet-stream");
      header("Content-Disposition: inline; filename=\"monFichier.catPart\"");
      header("Content-Length: ".filesize("test.txt"));
     } else {
      header("Content-type: application/force-download");
      header("Content-Disposition: attachment; filename=\"monFichier.catPart\"");
      header("Content-Length: ".filesize("test.txt"));
     }
     header("Expires: Fri, 01 Jan 2010 05:00:00 GMT");
     if(strstr($_SERVER["HTTP_USER_AGENT"],"MSIE")==false) {
      header("Cache-Control: no-cache");
      header("Pragma: no-cache");
     }
     include("test.txt");
    ?>
    Je te laisse le soin de traduire le code en Java. Attention il faut peut être plus fin sur la gestion de la version du navigateur IE donc de différencier IE6, de IE7 ou de IE8.

    J'espère de ne pas recevoir un blâme car j'ai publié du code PHP sur le forum Java.
    Bien le bonjour chez vous
    Jowo

  10. #10
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 106
    Points : 182
    Points
    182
    Par défaut
    Jowo

    Bon je n'y arrive pas
    Voici mon code avec un fichier qque
    Il y a qque chose que j'ai pas compris mais quoi??? surtout que cela marche même avec des navigateurs qui sont un surcouche d'IE comme AvantBrowser ou CrazyBrowser mais pas avec IE

    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
    30
    31
    32
    33
    34
    35
    36
    37
     
     {
        doDownload(request, response, "D:/Documents and settings/st20085/Local Settings/Temp/AdobeARM.log", "toto.log");
      }
     
      private void doDownload(HttpServletRequest req, HttpServletResponse resp, String filename, String original_filename) throws IOException
      {
        ServletContext context = getServletConfig().getServletContext();
        String mimetype = context.getMimeType(filename);
     
        //
        //  Set the response and go!
        //
        File f = new File(filename);
        resp.setContentType((mimetype != null)? mimetype : "application/octet-stream");
        resp.setContentLength((int) f.length());
        resp.addHeader("Content-Disposition", "attachment; filename=\"" + original_filename + "\"");
     
        //
        //  Stream to the requester.
        //
        int BUFSIZE = 4*1024;
        byte[] bbuf = new byte[BUFSIZE];
        DataInputStream in = new DataInputStream(new FileInputStream(f));
     
        ServletOutputStream op = resp.getOutputStream();
     
        int length = 0;
        while((length = in.read(bbuf)) != -1)
        {
          op.write(bbuf, 0, length);
        }
     
        in.close();
        op.flush();
        op.close();
      }

  11. #11
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    CODE NON VERIFIÉ:
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    private void doDownload(HttpServletRequest req, HttpServletResponse resp, String filename, String original_filename)
        throws IOException {
        final ServletContext context = getServletConfig().getServletContext();
        final String mimetype = context.getMimeType(filename);
     
        //
        //  Set the response and go!
        //
        final File f = new File(filename);
        final userAgent = req.getHeader("User-Agent");
        final boolean isIE = ;
        if (userAgent != null) {
          isIE = (userAgent.indexOf("MSIE") != -1);
        }
        else {
          isIE = false;
        }
     
        if (!isIE) {
          resp.setContentType((mimetype != null)? mimetype : "application/octet-stream");
        }
        else {
          resp.setContentType("application/force-download");
        }
        resp.setContentLength((int) f.length());
        // ATTENTION: il faudrait coder original_filename en "URL CODE"
        resp.addHeader("Content-Disposition", "attachment; filename=\"" + original_filename + "\"");
     
        // ATTENTION: il serait préférabel d'utiliser la méthode addDateHeader
        resp.addHeader("Expires", "Fri, 01 Jan 2010 05:00:00 GMT");
        if (!isIE) {
          resp.addHeader("Cache-Control", "no-cache");
          resp.addHeader("Pragma: no-cache");
        }
     
        //
        //  Stream to the requester.
        //
        final OutputStream op = resp.getOutputStream();
        final int BUFSIZE = 4*1024;
        final byte[] bbuf = new byte[BUFSIZE];
        BufferInputStream in = null;
     
        try {
          in = new BufferInputStream(new FileInputStream(f));
          int length = 0;
          while((length = in.read(bbuf)) != -1) {
            op.write(bbuf, 0, length);
          }
        finally {
          if (in != null)) {
            try {
              in.close();
            }
            catch (IOException ioe) {
              // Log l'erreur sur fermeture
            }
          }
     
        op.flush();
        op.close();
        }
      }
    Bien le bonjour chez vous
    Jowo

  12. #12
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 106
    Points : 182
    Points
    182
    Par défaut
    Toujours le même problème

    j'ai ca pour le User-Agent, est-ce normal?
    Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Avant Browser; SV1; .NET CLR 2.0.50727; InfoPath.1; MS-RTC LM 8; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)

  13. #13
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Je me répète:

    - Est-ce qu'avec ma page testIE6.php ça fonctionne?

    Si oui, as-tu les outils nécessaire pour comparer les deux requêtes?
    Bien le bonjour chez vous
    Jowo

  14. #14
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 106
    Points : 182
    Points
    182
    Par défaut
    >Est-ce qu'avec ma page testIE6.php ça fonctionne?
    Oui ca c'est bon

    >Si oui, as-tu les outils nécessaire pour comparer les deux requêtes?
    ca par contre j'ai pas grand chose, j'utilise parfois le tcpmon pour rediriger les ports et voir les requêtes (http://ws.apache.org/axis/java/user-guide.html)

  15. #15
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Citation Envoyé par st20085 Voir le message
    Toujours le même problème

    j'ai ca pour le User-Agent, est-ce normal?
    Oui ,c'est "normal"

    Mon User-Agent pour IE8
    Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
    Bien le bonjour chez vous
    Jowo

  16. #16
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Citation Envoyé par st20085 Voir le message
    >Est-ce qu'avec ma page testIE6.php ça fonctionne?
    Oui ca c'est bon

    >Si oui, as-tu les outils nécessaire pour comparer les deux requêtes?
    ca par contre j'ai pas grand chose, j'utilise parfois le tcpmon pour rediriger les ports et voir les requêtes (http://ws.apache.org/axis/java/user-guide.html)
    De mon côté, j'utilise Fiddler (IE et FF) ou Firebug (FF) avec le plug-in "User Agent Switcher"
    Bien le bonjour chez vous
    Jowo

  17. #17
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 106
    Points : 182
    Points
    182
    Par défaut RESOLUE
    Bonjour

    Je pense avoir trouvé mon problème.
    Après avoir écrit une nouvelle servlet dans mon application, le download marche avec IE, ce n'est pas IE qui empêche le téléchargement mais mon application.
    Après avoir fait des recherches dans mon code Java, j'ai trouvé la ligne suivante dans le code Javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var cadFrm = window.open( _URL, starget );
    ou starget valait la chaine "dataFrm", j'ai donc remplacé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.location = _URL;
    mais je ne comprends pas pkoi IE bloque mais pas les autres navigateurs, cela reste une énigme
    Si qqu'un a une idée, je suis preneur

    en tout cas merci à vous tous et surtout à Jowo

    bonne journée

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

Discussions similaires

  1. InterNet Explorer contenu bloqué
    Par Trebor_ dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/03/2008, 04h44
  2. Pop up bloqué sous Internet Explorer
    Par cuicuilasouris dans le forum Flash
    Réponses: 4
    Dernier message: 11/04/2007, 00h33
  3. téléchargement de fichier internet explorer
    Par david06600 dans le forum Windows XP
    Réponses: 10
    Dernier message: 31/07/2006, 00h00
  4. Désactiver icône de téléchargement image de Internet Explorer
    Par denn dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/05/2006, 17h42
  5. Internet Explorer bloque Le contenu du flash
    Par mahdi_usthb dans le forum Flash
    Réponses: 1
    Dernier message: 12/07/2005, 16h09

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