Servlet devant charger une image dans un tableau de byte
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:
Code:
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();
}
}
} |
Je n'ai pas précisé l'entête content-length, car je n'ai pas trouvé d'exemple l'utilisant.
Cependant lorsque je compile j'ai un message d'erreur:
Citation:
Picture.java:14: possible loss of precision
found : long
required : int
byte[] tabb = new byte [f.length()];
^
1 error
J'ai essayé de corriger l'erreur en utilisant un cast : (int) f.length(); mais cela ne fonctionne pas.
Je ne vois pas trop ce que je peux faire, si vous avez une piste je suis preneur.
Merci d'avance, mumu27!