Bonjour à tous,
J'ai des fichiers stocké dans ma base Oracle.
J'affiche le PDF à l'écran lorsque le user clique sur le lien avec un appel à la fonction Blob comme suit :
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 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(false); if (session!=null && session.getAttribute("dbMCIC")!=null) { try { CallableStatement cstmt; // Get the connection. int z; MCICOracle dbMCIC = (MCICOracle)session.getAttribute("dbMCIC"); OracleConnection conn = dbMCIC.getConnection(); // Recherche RDV String rdv_indice = request.getParameter("rdv_indice"); String val = request.getParameter("val"); response.setContentType("application/pdf"); response.setHeader("Content-disposition", "file-name=mailing.pdf") ; response.setHeader("Content-disposition","Content-Type=pdf"); InputStream is = getBLOB(rdv_indice, conn, val); ServletOutputStream op = response.getOutputStream(); while ((z=is.read()) != -1) { op.write((char)z); } op.flush(); op.close();Le seul problème c'est lorsque je désire enregistrer le PDF il me propose comme nom, le nom ma servlet Search_po.
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 private InputStream getBLOB(String id, OracleConnection cn, String val) { BLOB blob = null; InputStream is = null; try{ //préparation de l'instruction SQL String sql = "SELECT * FROM MCIC.PA_" + val + " WHERE INDICE = " + id; PreparedStatement statement = cn.prepareStatement(sql); //récupération du fichier (BLOB) ResultSet resultat = statement.executeQuery(); resultat.next(); blob = ((OracleResultSet)resultat).getBLOB("FICHIER");; int chunk = blob.getChunkSize() ; is = blob.getBinaryStream(); }catch(Exception e){ //traitement des erreurs SQL, IO, etc . System.out.println("Erreur lors de chargement de BLOB : " + e.toString()); } return is; }
J'aimerais qu'il me propose le nom de mon fichier qui est également stocké dans ma DB.
Auriez-vous un petite idée ??
D'avance merci à tous
Partager