Bonjour à tous,

J'aurais eu besoin de l'éclairage de la communauté sur un point technique pour lequel je bloque.

J'ai une base MySQL dans laquelle je viens stocker des PDF en longblob.

Alors, oui je sais, c'est pas bien de stocker des fichiers dans une base, mais là, je n'ai pas trop le choix et je n'en ai pas des masses à stocker

Je me suis fait une moulinette pour tenter de transformer mon PDF en byte[], car c'est apparemment comme ça qu'il faut l'insérer dans un champ longblob. Mais ma moulinette en question ne me sort pas grand chose.

Voilà déjà mon code ::

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
 
	public byte[] PDFenBlob(String cheminFichierPDF) throws IOException {
			BufferedReader reader = new BufferedReader(new FileReader(cheminFichierPDF));
			StringBuffer fileContentStr = new StringBuffer("");
			String line = null;
			byte[] fileContent = null;		
 
 		try {
 
 			while ((line = reader.readLine()) != null) {
				fileContentStr.append(line);
			}
 
			fileContent = fileContentStr.toString().getBytes();
			reader.close();
 
		} catch (IOException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
 
 		return fileContent;
	}
Lorsque je tente d'appeler ensuite ma méthode qui va insérer ce joli monde en base, je serais en droit d'attendre un truc un peu volumineux, étant donné que mon PDF type fait 3 pages, mais au lieu de ça j'insère ça : [B@1c6b6478

Un peu piteux.

Pour info, voilà ma méthode d'insertion, le fileContent étant censé être le blob à insérer :
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
 
	public void insererNouveauFichierPro(int idPersonnes,byte[] fileContent) throws SQLException {
		Connection cn;
		String titre = "cvInsertAutoTest";
		String type = "pro";
		cn=(DriverManager.getConnection(getUrl(),getLogin(),getMdp()));
		Statement st=cn.createStatement();
		String requete = "insert into snr.cv (`idcv`,`idpersonnes`, `titrecv`, `cv`, `type`) "
				+ "VALUES (NULL,"
				+idPersonnes+","
				+ "\'"+titre+"\',"
				+ "\'"+fileContent+"\',"
				+ "\'"+type+"\')";
 
		System.out.println(requete);
		st.executeUpdate(requete);
	}
Est-ce que quelqu'un aurait une idée de l'endroit où mon code déconne ?

Merci à vous.

Bonne journée.