Bonjour,
je cherche à créer une servlet devant charger une image dans un tableau de byte, configurer le type de contenu pour une image, configurer l'entête content-length (le nombre de byte dans le tableau) et envoyer l'image dans la réponse au client.
Voici le code:
Je n'ai pas précisé l'entête content-length, car je n'ai pas trouvé d'exemple l'utilisant.
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 public class Picture extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) { String picturefile = request.getParameter("picturefile"); File f = new File("C:\\Documents and Settings\\Sébastien\\Mes documents\\Photos\\Japon\\Tokyo\\" + picturefile); FileInputStream fis = new FileInputStream(f); ByteArrayOutputStream boss = new ByteArrayOutputStream(); byte[] tabb = new byte [f.length()]; fis.read(tabb); try { response.setContentType("image/jpeg"); OutputStream o = response.getOutputStream(); o.write(tabb); o.flush(); o.close(); } catch (Exception e) { e.printStackTrace(); } } }
Cependant lorsque je compile j'ai un message d'erreur:
J'ai essayé de corriger l'erreur en utilisant un cast : (int) f.length(); mais cela ne fonctionne pas.Picture.java:14: possible loss of precision
found : long
required : int
byte[] tabb = new byte [f.length()];
^
1 error
Je ne vois pas trop ce que je peux faire, si vous avez une piste je suis preneur.
Merci d'avance, mumu27!
Partager