je veux stocker des images sous Mysql, et puis les afficher dans mon programme java, (je fais une gestion des étudiants). est ce que vous pouvez m'aider s'il vous plait.
jordane45
Messages postés37744Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 4 octobre 2023342 21 janv. 2014 à 16:39
Bonjour,
Quel est le souci rencontré ?
NB : Il est préférable, pour des questions de performance, de ne pas stocker directement les images en BDD mais uniquement leur chemin.
-> Tu créer un dossier Images
-> Dans ta BDD.. pour chaque image tu donnes un ID, un Nom, le chemin vers le répertoire où elle se trouve.
NB2 : Pour obtenir plus d'aide concernant ta demande... merci de respecter la charte du site et donc de donner un maximum d'informations sur les difficultés rencontrées et les tests que tu as effectué avant d'appeler au secours...
Placer un label nommé le par jlphoto et un bouton appelé importer.
Placez comme action dans le bouton:
JFileChooser fc= new JFileChooser();
fc.setFileFilter(new FileNameExtensionFilter("Image JPEG, PNG ou GIF", "jpg", "gif", "png"));
fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
int result = fc.showOpenDialog(this);
if (JFileChooser.OPEN_DIALOG == result) {
if ( fc.getSelectedFile().length() < 8000000) {
CheminPhoto = fc.getSelectedFile().getAbsolutePath();
jlphoto.setIcon(new ImageIcon(CheminPhoto));
} else {
JOptionPane.showMessageDialog(this, "La taille maximale de la photo est 2 Mo, "
+ "veuillez choisir une autre photo", "Attention", JOptionPane.WARNING_MESSAGE);
}//fin getSelectedFile
}
N'est pas oublier d'importer
import javax.swing.filechooser.FileNameExtensionFilter;
import java.sql.Blob;
NB Les images sous MYSQL sont du type blob et on ne precise pas la taille.
Exemple: photo blob comme champs dans une table
Pour enregistrer, le code java a utilisé est:
//création d'un fichier une image
File monImage = new File(cheminPhoto);
FileInputStream istreamImage = new FileInputStream(monImage);
//affectation des valeurs
PreparedStatement prepare=null;
String requete="insert into table (photo)values(?)";