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 :
et côté 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 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();
seulement si le fichier est assez important (j'en ai un de 40Mo) j'ai une erreur
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();
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
Partager