Penses-tu qu'il faut que je fasse afficher le tableau de bytes reçus non ?
Tel quel, il faut que ton serveur ait les informations comme quoi le flux envoyé est effectivement du PDF...
En JSP, je ne sais pas trop comment ca se fait, par contre en servlet, ce n'est pas tres difficile, et la technologie utilisée à la base est la même...
En servlet, il suffit de faire un truc du genre :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
public class PDFServlet extends HttpServlet {
.....
.....
.....
protected void doGet(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
res.setContentType("application/pdf");
res.setContentLength(baos.size());
ServletOutputStream out = res.getOutputStream();
baos.writeTo(out);
out.flush();
}
} |
Dans un objet implémentant une servlet HTTP... (y'a p'tet un bloc try/catch qui manque...)
baos étant un ByteArrayOutputStream, dans lequel tu mets la lecture de ton flux PDF...
Tu dois pouvoir faire quelquechose de similaire en JSP, mais il doit falloir que tu lui indiques de quel type de flux il s'agit, sinon, il risque de t'afficher ton tableau de bytes directement dans une page html... C'est pas tres lisible... Un detail aussi, la ligne
res.setContentLength(baos.size());
est utile, parce que sous certains navigateurs, tu risques d'avoir des problemes pour récupérer ton PDF dans le cas ou tu as un gros flux a envoyer... Il vaut mieux lui signifier la taille avant...
Partager