Bonjour à tous,
Je dois faire une Applet qui envois un fichier précis à une Servlet qui va l'enregister à un endrois précis sur le serveur.
Je me suis servis de la FAQ pour obtenir ça :
SUpload.java :
Upload.java :
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 import java.applet.Applet; //import java.awt.*; import java.io.*; import java.net.*; public class SUpload extends Applet { public void init() { this.setSize(0, 0); } public int upload() { File img = null; try { img = new File("~/exemple.jpg"); if(!img.isFile()) return -2; if(!img.canRead()) return -3; if(!img.canWrite()) return -4; // upload URL urlservlet = new URL("http://serv/servlet/Upload"); HttpURLConnection connExtension = (HttpURLConnection)urlservlet.openConnection(); FileInputStream in = new FileInputStream(img); byte[] tableauImage = new byte[52428800]; in.read(tableauImage); in.close(); HttpURLConnection connImage = (HttpURLConnection)urlservlet.openConnection(); connImage.setDoInput(true); connImage.setDoOutput(true); connImage.setUseCaches(false); connImage.setRequestProperty("Content-Type","application/octet-stream"); DataOutputStream out = new DataOutputStream(connImage.getOutputStream()); out.write(tableauImage, 0, tableauImage.length); out.flush(); out.close(); if(!img.delete()) return -6; } catch(Exception e) { return -1; } /* finally { if(img != null) img.close(); }*/ return 0; } }
main.html :
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 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Upload extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { byte[] temp = new byte[52428800]; // Récupération du flux entrant DataInputStream dis = new DataInputStream(request.getInputStream()); dis.readFully(temp); dis.close(); // Ecriture du fichier image sur le serveur File cibleServeur = new File("tmp/temp.jpg"); FileOutputStream fos = new FileOutputStream(cibleServeur); fos.write(temp); fos.close(); } public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException { doGet(request,response); } }
Le soucis que je rencontre est que mon Applet me retourne toujours -1 alors que mon chmod est 0777.
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 <HTML> <HEAD> <TITLE> Applet </TITLE> <script type="text/javascript"> function uploadFichier() { alert(document.sApplet.upload()); } </script> </HEAD> <BODY> <h1>Applet</h1> <APPLET id="sApplet" CODE="Shaina.class" WIDTH=0 HEIGHT=0> </APPLET> <input type="button" value="Upload !" onclick="uploadFichier();"/> </BODY> </HTML>
Pour votre aide,
Par avance,
Merci
Partager