salut,
je voudrais récuperer un fichier du serveur pour mon navigateur, je sais qu'il faut utiliser :ServletOutputStream,*getOutputStream()... mais je vois pas comment![]()
merci d'avance
salut,
je voudrais récuperer un fichier du serveur pour mon navigateur, je sais qu'il faut utiliser :ServletOutputStream,*getOutputStream()... mais je vois pas comment![]()
merci d'avance
exactement
Je ne sais pas si c'est faisable depuis une JSP, je pense pas à priori mais je suis loin d'etre un expert ... enfin, si tu veux que cela se fasse de manière transparente ... sinon, c un bete lien mais je pense pas que la soit ta question ...
Si tu veux pas que l'utilisateur aie son mot a dire alors il te faut faire :
une applet ; elle doit etre signée, et tu dois avoir les droits qui vont bien sur le client (fichier java.policy) ..
un servlet : sur le serveur
Et il faut les faire communiquer ...
J'ai le code qui va bien ... c'est exactement ce que je viens de faire ...
je sais qu'on peut le faire avec un simple href, mais apparement si faisable en jsp, j'ai trouvé un code pour télécharger une image, mais je vois pas comment le modifier pour envoyer un fichier
voila le code
©[/code]
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 com.sun.image.codec.jpeg.*; import javax.servlet.http.*; import javax.servlet.*; import java.awt.*; import java.awt.image.*; import java.io.*; public class ImageServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { // le contenu produit est une image au format jpeg res.setContentType("image/jpeg"); ServletOutputStream out = res.getOutputStream(); // l'objet enc va encoder les données et les envoyer sur // le flux de sortie de type ServletOutputStream JPEGImageEncoder enc = JPEGCodec.createJPEGEncoder(out); // création d'une nouvelle image dune réolution de 1024 par // 768 BufferedImage image = new BufferedImage(1024,768,BufferedImage.TYPE_BYTE_INDEXED); // récupération du contexte graphique lié à l'image Graphics2D g = image.createGraphics(); // la prochaine opération s'effectuera avec la couleur rouge g.setColor(Color.red); // affichage de la célèbre phrase g.drawString("Bonjour monde !", 400, 500); // transformation des données au format jpeg et envoi // de celles-ci sur le flux standard de sortie (le navigateur) enc.encode(image); } }
comme ca ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 String filePath = chemin+fileName; File source = new File(filePath); OutputStream out = resp.getOutputStream(); DataOutputStream dos = new DataOutputStream(out); FileInputStream fis = new FileInputStream(source); byte[] tab = new byte[1024]; int lu = fis.read(tab); while(lu>=0) { dos.write(tab, 0, lu); lu = fis.read(tab); } dos.flush(); dos.close(); fis.close();
merci beaucoup, c'est exactement, ce qu'il me faut![]()
Partager