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

Websphere Java Discussion :

[J2EE][WEBSPHERE] Envoi de fichier avec FileItem, problème d'encoding caractère °


Sujet :

Websphere Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 1
    Points
    1
    Par défaut [J2EE][WEBSPHERE] Envoi de fichier avec FileItem, problème d'encoding caractère °
    Bonjour à tous,

    J'ai un problème avec un envoi de fichier qui utilise un FileItem.
    La cadre de fonctionnement est JSP + PORTLET, ce qui a je pense peux d'influence sur mon problème.

    L'envoi des fichiers fonctionne correctement sauf lorsque l'on mets un caractère °.

    Dans le nom du fichier le ° est alors transformé en ° (converti en int c'est 176).

    L'encoding du DiskFileUpload est en UTF-8.

    Je suis vraiment bloqué j'ai besoin d'un peu d'aide pour avancer.

    Merci d'avance,

    Fred

  2. #2
    Membre éprouvé
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Points : 1 144
    Points
    1 144
    Par défaut
    Le probleme ne viendrait pas de ta JSP qui sucre le ° lors de la request car elle n'est pas configurer en UTF-8?

    Du coup quand tu récupères le nom du fichier il récupère un caractère bizarre.
    Etre c'est etre relatif.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta réponse.

    Je n'avais pas d'encoding, donc je l'ai ajouté : dans la JSP, et dans la page web générée.

    JSP: La page commence maintenant par

    <%@ page session="false" contentType="text/html; charset=UTF-8" import="uploadfile.*"%>
    Dans la page HTML, l'entete contiens le charset.
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    </head>
    <body>........
    Cela ne fonctionne toujours pas malgré cela (j'ai le même résultat)

  4. #4
    Membre éprouvé
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Points : 1 144
    Points
    1 144
    Par défaut
    Il faut à l'entrée de ta servlet ciblée par ta JSP que tu forces le response.setCaracterEncoding("UTF-8").

    Ca devrait débloquer la situation.

    Et vérifie bien que l'entete est bien setté à UTF-8. tu peux telecharger ieHTTPHeaders, c'est un plugin IE qui te donne des données interessantes sur ton header.
    Etre c'est etre relatif.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    1/ Je joint le fichier des entetes (Headers.txt)
    On voit que dans le POST, le caractère du filename est corrompu.

    Content-Disposition: form-data; name="PC_7_0_1OJ_UploadFilePortletText"; filename="testn°1.jpg"
    2/ Voila le debut de la jsp qui permet de choisir le fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     
    <html>
      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      </head>
      <body>.....


    3/ J'ai ajouté aussi sur le formulaire
    accept-charset='UTF-8,ISO-8859-1'.


    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
     <FORM method="POST" name="PC_7_0_1OJ_wcmUploadForm" ENCTYPE="multipart/form-data" action="/wps/myportal/!ut/p/kcxml/04_Sj9SPykssy0xPLMnMz0vM0Y_QjzKLN4g3NPUGSYGYxqb6kWhCjggRX4_83FT9IKBMpDlIyN9LPyonNT0xuVI_WN9bP0C_IDc0otzb0REAt93oHQ!!/delta/base64xml/L0lJSk03dWlDU1lKSi9vQXd3QUFNWWdBQ0VJUWhDRUVJaEZLQSEvNEZHZ2RZbktKMEZSb1hmckNIZGgvN18wXzFPSi80ODQ4OS9zYS51cGxvYWRmaWxlLlVwbG9hZEFjdGlvbg!!#7_0_1OJ" accept-charset='UTF-8,ISO-8859-1'>
            <div style="display:block; height:10;"></div>
            <div>
                <p>Select file :
                    <INPUT class="wpsEditField" size=30 name="PC_7_0_1OJ_UploadFilePortletText" type="file"/>
                    &nbsp;&nbsp;                
                </p>
            </div>
            <div>
                <p>
                    Enter the directory where to copy the file
                    <INPUT class="wpsEditField" size=30 name="UploadFilePortletdirectory" type="text"/>
                </p>
            </div>
     
            <INPUT class="wpsButtonText" name='PC_7_0_1OJ_btnSubmit' value="Submit" type="button" 
                        onClick="return PC_7_0_1OJ_doSubmit()">
    </FORM>


    Rien n'y fait, mon caractère est toujours pourri...
    Fichiers attachés Fichiers attachés

  6. #6
    Membre éprouvé
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Points : 1 144
    Points
    1 144
    Par défaut
    Malheureusement, il ne suffit pas de mettre une balise meta. En effet il faudrait que tu ajoutes an haut de ta JSP quelque chose du style (il faut forcer la request):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <% 
    response.setContentType("text/html; charset=UTF-8");
    %>
    Et ce avant même de commencer à écrire dans ton flux de sortie.

    Tu devais obtenir une sortie de ce style à l'arriver dans ta JSP d'upload grace à ieHTTPHeaders :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    HTTP/1.1 200 OK
    Date: Thu, 27 Apr 2006 12:22:19 GMT
    Server: WebSphere Application Server/5.0
    Keep-Alive: timeout=15, max=97
    Connection: Keep-Alive
    Transfer-Encoding: chunked
    Content-Type: text/html; charset=UTF-8
    Content-Language: fr-FR
    Etre c'est etre relatif.

  7. #7
    Membre expérimenté

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Points : 1 660
    Points
    1 660
    Par défaut
    Comme le dit yolepro, tu dois rajouter un balise en haut de ta page jsp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ page contentType="text/html; charset=UTF-8"%>
    S'cuse yolepro mais je trouve plus propre de mettre un balise qu'un scriptlet

    Et normalement ton problème devrait être résolu.
    Langages : Java, SQL
    Outils : Eclipse, Intellij
    SGBD : Oracle, PostgreSQL
    Mes Articles

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Comme indiqué dans le message 3, j'ai déja mis le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%@ page contentType="text/html; charset=UTF-8"%>
    J'ai aussi ajouté le scriptlet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <%response.setContentType("text/html; charset=UTF-8");%>
    


    La jsp possède bien le bon Content type "Content-Type: text/html; charset=UTF-8".

    Pourtant le caractère envoyé par le POST est mauvais.
    C'est bien la JSP (ou plutot le html généré par la jsp) qui envoye un mauvais caractère.

    Je ne vois pas trop ce que j'ai oublié

    Merci pour vos réponses dans tous les cas.

Discussions similaires

  1. problème d'envoie de fichier avec socket
    Par pipip dans le forum Entrée/Sortie
    Réponses: 0
    Dernier message: 17/11/2009, 21h39
  2. problème d'envoi de fichiers avec php
    Par legentil dans le forum Windows
    Réponses: 6
    Dernier message: 16/11/2007, 11h11
  3. [VB]Envoie de fichier avec winsock
    Par Xdrei dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 24/03/2006, 09h54
  4. envoie de fichier avec winsock2
    Par chichou10 dans le forum Bibliothèques
    Réponses: 8
    Dernier message: 08/03/2006, 00h38
  5. Envoi de fichier avec Indy
    Par Nicodemus dans le forum Web & réseau
    Réponses: 2
    Dernier message: 28/10/2005, 15h29

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