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 :
- 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 :
- <form type="POST" ENCTYPE="multipart/form-data" action="process_photo.jsp">
- <input type="file" name="input_photo"/>
- </form>
|
Code :
- File filedata = new File(request.getParameter("input_photo" ));
- InputStream fin = new FileInputStream(filedata);
- statement = Conn.createStatement();
- PreparedStatement pre = Conn.prepareStatement("update table_photo set photo='?' where id='monid'" );
- pre.setBinaryStream(1,fin, (int)filedata.length());
|
et si je le mets sur le serveur et que je fais :
Code :
- File filedata = new File("/images/nophoto.jpg" );
- InputStream fin = new FileInputStream(filedata);
- statement = Conn.createStatement();
- PreparedStatement pre = Conn.prepareStatement("update table_photo set photo='?' where id='monid'" );
- 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
merci de votre aide
Message édité par cannelline le 17-07-2008 à 15:28:25