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

Servlets/JSP Java Discussion :

Parcourir, charger et sauvegarder une image dans une BDD


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    578
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 578
    Par défaut Parcourir, charger et sauvegarder une image dans une BDD
    Bonjour

    J'aimerais savoir comment sauvegarder une image dans une base de données mysql avec J2EE,et ensuite pouvoir l'afficher.En effet j'aimerais faire un truc comme lorsqu'on charge ajoute une nouvelle photo sur sa page facebook, c'est à dire :

    1. Parcourir l'image sur le disque dur
    2. Charger l'image sur le site web
    3. Sauvegarder l'image dans la base de données


    Je ne sais vraiment pas par où commencer;Donc j'attends impatiemment votre aide.

    Merci

  2. #2
    Membre Expert
    Avatar de olivier.pitton
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2012
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 355
    Par défaut
    Plop,

    Parcourir l'image sur le disque dur
    Tu peux utiliser un input de type file te permettant de parcourir les fichiers sur le pc du client.

    Documentation ici.

    Charger l'image sur le site web
    Côté serveur, tu ajoutes une Servlet (ou quelque chose capable d'intercepter des requêtes HTTP de type POST) et tu récupères le contenu du fichier. Le plus simple pour cela est d'utiliser cette bibliothèque : apache-commons-fileupload

    Sauvegarder l'image dans la base de données
    Enfin, pour stocker purement l'image, tu peux utiliser la structure BLOB de MySQL. Tu peux, par exemple, créer une table contenant le nom d'une image, l'utilisateur propriétaire et le blob.

    Pour l'affichage, il te suffit de récupérer toutes les images de l'utilisateur désirant voir ses photos, par exemple, en utilisant le champ utilisateur propriétaire que j'ai décris précédemment.

    Bon courage !

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    578
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 578
    Par défaut
    Ok merci,je vais exploiter cette piste.Je te tiens au courant

  4. #4
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    578
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 578
    Par défaut
    J'ai parcouru les liens que tu m'as envoyés et je dois avouer que c'est un peu chaud pour moi ., surtout pour le chargement de l'image sur le site web.Il y'a quelques zones d'ombres notamment ce bout de 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
    24
    25
    26
    27
    28
    29
     
               try {
                // Check that we have a file upload request
    boolean isMultipart = ServletFileUpload.isMultipartContent(request);
    // Create a new file upload handler
    ServletFileUpload upload = new ServletFileUpload();
     
    // Parse the request
    FileItemIterator iter = upload.getItemIterator(request);
    while (iter.hasNext()) {
        FileItemStream item = iter.next();
        String name = item.getFieldName();
        InputStream stream = item.openStream();
        if (item.isFormField()) {
            String name = item.getFieldName();
        String value = item.getString();
     
     
        } else {
            String fieldName = item.getFieldName();
        String fileName = item.getName();
        String contentType = item.getContentType();
        boolean isInMemory = item.isInMemory();
        long sizeInBytes = item.getSize();
        }
    }
     
     
            }
    Si j'ai bien compris après avoir utilisé le "input file" pour chercher le fichier sur le disque dur, je peux utiliser ce code pour récupérer le fichier qui se trouve dans le champ de texte.Maintenant ce que je n'arrive pas à comprendre:

    1.Dans ce bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    boolean isMultipart = ServletFileUpload.isMultipartContent(request)
    Qu'est ce que je suis censé mettre dans "request"?

    2.Pourquoi certaines class ne sont pas reconnues par mon netbeans?Parce qu'en plus mon netbeans ne me propose pas d'importer les class pour corriger ces erreurs.Il s'agit de:
    ServletFileUpload; FileItemIterator; FileItemStream;
    3.Comment le code ci-dessus arrive à récupérer les détails du fichier sans qu'il n y ait un lien entre le champ de texte et le code.C'est à dire qu'il faudrait par exemple insérer le nom du "input file" dans le code ci-dessus.

    Encore merci

  5. #5
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    578
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 578
    Par défaut
    Finalement je sais pourquoi mes class ne sont pas reconnues.JE devais les créer moi-même ().Mais heureusement que ces class sont téléchargeables sur le lien que tu m'as donné.Cependant la Class FileCleaningTracker n'est pas incluse dans le package que j'ai téléchargé.Donc la solution est de la rechercher et de la créer moi même.Mais le problème qui se pose, quand je crée la class, il y a toujours une nouvelle Class ou une méthode qui n'est pas reconnue.Donc je dois la rechercher et la créer.Ainsi de suite.Donc je me retrouve chaque fois à créer de nouvelles class.Donc mis à part le package que j'ai téléchargé,j'ai créé une dizaine class et j'ai toujours de nouvelles erreurs.

    Donc j'aimerais savoir si je dois continuer à les créer moi même ou bien y aurait-il un autre package que j'ai oublié de télécharger.

    Je dois aussi rappeler que j'ai ajouté le jar "commons-fileupload-1.2.2.jar" dans mon application.

    Merci

  6. #6
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    578
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 578
    Par défaut
    J'ai trouvé,il fallait tout simplement que je crée une nouvelle librairie pour l'ajout du "commons-fileupload-1.2.2.jar".

Discussions similaires

  1. [Débutant] Manipulation d'images : intégrer une image dans une image
    Par noscollections dans le forum VB.NET
    Réponses: 2
    Dernier message: 17/10/2014, 11h51
  2. Une image dans une image (image map?)
    Par oklama dans le forum Langage
    Réponses: 3
    Dernier message: 24/01/2007, 14h13
  3. Mettre une Image dans une Image
    Par shadowhocine dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 19/12/2006, 18h40
  4. Réponses: 3
    Dernier message: 30/10/2006, 11h21
  5. Insérer une légende dans une image avec une police plus petite
    Par Paulinho dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 3
    Dernier message: 29/04/2006, 14h19

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