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 :

[com applet-servlet][file upload] CharConversionException


Sujet :

Servlets/JSP Java

  1. #1
    Membre habitué Avatar de meufeu
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 355
    Points : 166
    Points
    166
    Par défaut [com applet-servlet][file upload] CharConversionException
    Bonjour,

    J'essaie de faire un upload de fichier ... il me pose des problemes ..
    En effet, il créé bien un fichier sur le serveur mais il est vide ...

    Il me fait cette erreurs 5 fois :

    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
    java.io.CharConversionException: isHexDigit
    	at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:124)
    	at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:87)
    	at org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:407)
    	at org.apache.coyote.tomcat4.CoyoteRequest.parseRequestParameters(CoyoteRequest.java:1966)
    	at org.apache.coyote.tomcat4.CoyoteRequest.getParameter(CoyoteRequest.java:911)
    	at org.apache.coyote.tomcat4.CoyoteRequestFacade.getParameter(CoyoteRequestFacade.java:178)
    	at servlet.UploadServlet.doPost(UploadServlet.java:46)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
    	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
    	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
    	at java.lang.Thread.run(Thread.java:534)
    Le code de ma 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
    20
    21
    22
      public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    	String path = "C:/project/OGDE/struts/webroot/data/";	
    	String fileName = req.getParameter("fileName");
    	String id = req.getParameter("id");
    	String type = req.getParameter("type");	
     
    	//	...receive the modified (or not) file and save it
    	System.out.println(" Nom du fichier recu par servlet pour upload "+fileName);
    	InputStream in = req.getInputStream();		
    	DataInputStream dis = new DataInputStream(in);
    	File serverFile = new File(path+fileName);
    	System.out.println("fichier uploadé :"+serverFile.getPath());
    	FileOutputStream fos = new FileOutputStream(serverFile);
    	byte[] tab = new byte[1024];
    	int lu = dis.read(tab);
    	while(lu>=0) {
    	   fos.write(tab, 0, lu);
    	   lu = dis.read(tab);
    	}
    	fos.flush();
    	fos.close();
    	dis.close();

    la fonction qui communique avec la servlet dans mon applet :

    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
    	private void Upload(File sourcelocale) {
    	   try {
    		 // Ouverture d'une communication avec la servlet  
    		 URL urlCodeBase = new URL(getCodeBase() + "");
    		 String base = getCodeBase().toString().substring(0,getCodeBase().toString().length() -1 );
    		 int fin = base.lastIndexOf('/');
    		 String racine = getCodeBase().toString().substring(0,fin);
    		 URL servletURL2 = new URL( racine + "/OGDE/aliasUploadServlet?fileName="+newname+"&id="+id+"&type="+type); 
    		 System.out.println("Url de connexion à la servlet pour UPLOAD: "+servletURL2.toString());
    		 HttpURLConnection servletConnection =  (HttpURLConnection) servletURL2.openConnection();
    		 //servletConnection.setRequestMethod("POST");
    		 servletConnection.setDoInput(true);
    		 servletConnection.setDoOutput(true);
    		 servletConnection.setUseCaches(false);
    		 servletConnection.setDefaultUseCaches(false);
    		 //servletConnection.setRequestProperty("Content-Type","application/octet-stream");
    		 System.out.println("-1");
    		 //upload the file 
    		 OutputStream out = servletConnection.getOutputStream();
    		 DataOutputStream dos = new DataOutputStream(out);
    		 FileInputStream fis = new FileInputStream(sourcelocale);
    		 byte[] tab = new byte[1024];
    		 int lu = fis.read(tab);
    		 while(lu>=0) {
    			dos.write(tab, 0, lu);
    			lu = fis.read(tab);
    		 }
    		 System.out.println("-2");
    		 servletConnection.getResponseCode();
    		 dos.flush();
    		 dos.close();
    		 fis.close();
    		 out.close();
    		 System.out.println("-3");
    	   } catch (IOException e) {
    		 e.printStackTrace();
    	   }	
    	 }

    Je pense que ca vient de cette erreur le fait qu'il n'arrive pas a uploader le fichier ...

    Pourriez vous m'aider svp ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    at servlet.UploadServlet.doPost(UploadServlet.java:46)
    Dis nous quel est la ligne 46 de ta servlet ??? peut etre que ca nous aidera (peut etre pas !! )
    UML avec VIOLET

  3. #3
    Membre habitué Avatar de meufeu
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 355
    Points : 166
    Points
    166
    Par défaut j'ai trouvé !
    Bon je suis désolé d'avoir posté ce sujet ...
    j'ai trouvé la réponse, il faut préciser le content-type parce que sinon il croit que c'est des caracteres qu'il recoit alors que comme je trnasfert un fichier, c un flux d'octets

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    servletConnection.setRequestProperty("Content-Type","application/octet-stream");
    En tout cas merci !

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

Discussions similaires

  1. [APPLET-SERVLET] download oui mais upload non ...
    Par meufeu dans le forum Applets
    Réponses: 7
    Dernier message: 09/08/2004, 14h36
  2. [COM APPLET-SERVLET] url connexion
    Par meufeu dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 09/08/2004, 13h03
  3. [Applet][Servlet]
    Par meusha25 dans le forum Applets
    Réponses: 3
    Dernier message: 11/05/2004, 11h53
  4. [Applet - Servlet] Communication : quoi choisir ?
    Par gandalf_le_blanc dans le forum Applets
    Réponses: 14
    Dernier message: 28/04/2004, 15h43
  5. [Servlet][Tomcat] Upload d'un fichier sur le serveur
    Par gandalf_le_blanc dans le forum Tomcat et TomEE
    Réponses: 7
    Dernier message: 19/04/2004, 13h56

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