[JSP/SQL] insert dans un BLOB

insert dans un BLOB [JSP/SQL] - Java - Programmation

Marsh Posté le 17-07-2008 à 15:27:41    

bonjour a tous,
 
J'ai une table MySQL avec un champ BLOB dedans. Apres moultes recherches, j'ai compris qu'on ne pouvait pas inserer un BLOB avec une ligne de commande SQL puisqu'on ne peut pas specifier de valeur binaire dans ces cas la.
J'ai bien essaye :  

Code :
  1. update table_photo set photo=LOAD_FILE('/home/moi/nophoto_test.jpg') where id='monid';


 
et j'ai l'erreur : ERROR 13: Can't get stat of '/home/moi/nophoto_test.jpg' (Errcode: 2)
 
J'ai donc voulu faire une appli JSP en 2 pages : la premiere est un formulaire avec un input type=file pour recuperer l'image a inserer, la seconde recupere le fichier et l'insere sous forme d'input stream. mon probleme est que je n'arrive pas a recuperer le fichier uploade sous forme de stream... je suis en methode POST et j'ai bien rempli le enctype.
 
 

Code :
  1. <form type="POST" ENCTYPE="multipart/form-data" action="process_photo.jsp"> 
  2.     <input type="file" name="input_photo"/>
  3. </form>


 
 

Code :
  1. File filedata = new File(request.getParameter("input_photo" ));
  2. InputStream fin = new FileInputStream(filedata);
  3. statement = Conn.createStatement();
  4. PreparedStatement pre = Conn.prepareStatement("update table_photo set photo='?' where id='monid'" );
  5. pre.setBinaryStream(1,fin, (int)filedata.length());


 
et si je le mets sur le serveur et que je fais :
 

Code :
  1. File filedata = new File("/images/nophoto.jpg" );
  2. InputStream fin = new FileInputStream(filedata);
  3. statement = Conn.createStatement();
  4. PreparedStatement pre = Conn.prepareStatement("update table_photo set photo='?' where id='monid'" );
  5. pre.setBinaryStream(1,fin, (int)filedata.length());


 
j'ai l'erreur : images/nophoto.jpg (No such file or directory) alors que je peux y acceder sans pb en mettant l'adresse dans le browser.
 
Alors j'aimerais bien une methode simple pour remplir ce fichu champ BLOB  :fou:  
 
merci de votre aide  :hello:


Message édité par cannelline le 17-07-2008 à 15:28:25
Reply

Marsh Posté le 17-07-2008 à 15:27:41   

Reply

Marsh Posté le 19-07-2008 à 18:55:19    

Le fichier n'est pas physiquement au chemin /images/nophoto.jpg sur le serveur, il faut donner le chemin complet, et pas celui relatif à la racine du site web.

Reply

Marsh Posté le 21-07-2008 à 14:20:34    

En fait, si je met le chemin absolu, j'ai une erreur access denied...
 
Je pense que ma solution serait de reussir a recuperer le stram du fichier par la method post en passant par un formulaire. Des experiences a ce sujet ??

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed