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 ::
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
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; }
Un peu piteux.
Pour info, voilà ma méthode d'insertion, le fileContent étant censé être le blob à insérer :
Est-ce que quelqu'un aurait une idée de l'endroit où mon code déconne ?
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); }
Merci à vous.
Bonne journée.
Partager