bonjour,
j'ai une applet qui est chargée d'envoyer à une servlet un fichier
pour cela j'utilise le code suivant

côté 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
 
URL urlServlet = new URL(adresseServlet);
HttpURLConnection connexion = (HttpURLConnection) urlServlet.openConnection();
connexion.setDoInput(true); 
connexion.setDoOutput(true); 
connexion.setUseCaches(false); 
connexion.setRequestProperty("Content-Type","application/octet-stream");
connexion.setRequestProperty("fileName", fileName);
connexion.setRequestProperty("fileLength", Long.toString(fileLength));
 
FileInputStream in = new FileInputStream(fileToDownload); 
byte[] buffer = new byte[(int) fileLength];
in.read(buffer);
in.close(); 
 
DataOutputStream out = new DataOutputStream(connexion.getOutputStream()); 
out.write(buffer, 0, buffer.length); 
out.flush(); 
out.close();
et côté servlet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
java.io.DataInputStream dis = new java.io.DataInputStream(request.getInputStream());
byte[] buffer = new byte[fileLength];
dis.readFully(buffer); 
dis.close();
 
File cibleServeur = new File("C:/Temp/" + fileName);
FileOutputStream fos = new FileOutputStream(cibleServeur); 
fos.write(buffer);
fos.close();
seulement si le fichier est assez important (j'en ai un de 40Mo) j'ai une erreur
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
j'ai essayé d'envoyé le fichier via un "buffer" plus petit, mais j'ai l'impression que cette méthode revient au même et qu'il fait explosé la taille possible de la connexion

si vous avez une piste pour moi, je suis prenneur, là je sèche un peu
merci