IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Transformer PDF en longblob


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 8
    Par défaut Transformer PDF en longblob
    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.

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Déjà ta méthode de lecture est incorrecte : on n'utilise pas un Reader pour lire un flux binaire, mais un InputStream !

    Ensuite on évite de créer des requêtes SQL en concernant la requête avec les valeurs. C'est source d'erreur voir pire d'attaque potentielle...

    il faut utiliser un PreparedStatement...

    Enfin il faut libérer les ressources !!!
    (Connection, PreparedStatement,...)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XSL-FO] Transformation pdf indentation
    Par zuzudesbois dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 08/06/2011, 12h00
  2. Réponses: 2
    Dernier message: 10/03/2009, 17h45
  3. [FPDF] Fiche produit en ligne => transformation pdf
    Par Larffas69002 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 25/06/2008, 13h56
  4. [FOP] Transformation XML to PDF par FOP
    Par JustAGphy dans le forum Format d'échange (XML, JSON...)
    Réponses: 13
    Dernier message: 12/05/2004, 15h19
  5. transformer un fichire Xml en pdf
    Par SuperFoustan dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 21/02/2003, 11h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo