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();
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;
	   }
Le seul problème c'est lorsque je désire enregistrer le PDF il me propose comme nom, le nom ma servlet Search_po.

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