Stocker une image dans une BDD Mysql / jsp

Résolu
Bonjour,
J'ai rencontré un problème au niveau stockage des images dans une base de données MySQL
Quand je déployé mon projet je le teste dans un autre ordinateur au réseau il m'affiche le message des erreurs :
Java.io.FileNotFoundException :monimage.jpg (le fichier spécifié est introuvable)
Au niveau localhost je reconnais aucun problème mais au niveau réseau impossible d'ajouter l'image dans la BDD
J'ai créé mon projet avec Servlet /jsp , BDD MySQL
Voila le code d'ajouter une image dans BDD MySQL/ jsp :
Ce code existe dans un Servlet :
*****
FileInputStream fis;
String imgs=request.getParameter("imgs");
//imgs c'est le chemin d'image dans la page jsp
File image = new File(imgs);
fis = new FileInputStream(imgs);
prst.setBinaryStream(2, fis, (int) image.length());

***

Aide de moi s'il vous plait de trouvée la solution et merci d'avance

11 réponses

  1. Bonjour
    Première mot merci beaucoup arth pour votre réponse, deuxième chose quand je teste mon application je ne le teste pas dans mon ordinateur« localhost »mais dans un autre avec mon adresse IP pour accéder a la base de donnée qui est existe dans mon poste donc comment je peux régler ce problème .Servlet ne fonctionné pas ou quoi ?
    Problème existe leur d'ajout, ajouter une image existe dans autre ordinateur dans ma BDD MySQL il ne connaît pas le chemin d'image donc il m'affiche le message « FileNotFound »
    Merci d'avance
    1. Bonjour ;
      Je ne sais pas ou se trouve problème dans le fichier logs qui existe dans Tomcat.
      Et merci pour votre aide.
      1. Je n'ai pas encore trouvée la solution
      2. Contributeur
        Il faut regarder les logs Tomcat dans le dossier logs.
    2. Bonjour
      J'ai trouvée la solution voici le lien :
      http://www.roseindia.net/answers/viewqa/JSP-Servlet/18194-Jsp-Upload.html
      1. Contributeur
        Ceci est normal.

        Ta servlet va récupérer ton fichier en local.

        Hors quand celle-ci est sur ton serveur, elle va essayer d'ouvrir le fichier sur le serveur, et non plus sur ton poste.

        Du coup, FileNotFound.
        1. Contributeur
          Donc pour récapituler, j'ai pas tout saisi.

          Lorsque vous exécuté la Servlet, celle-ci est déployée sur votre poste dans Tomcat ou autre? Ou sur un poste distant?

          La base de données elle est sur quel poste?

          Avec un schéma ce serait bien en fait :-)

          1. Bonjour,
            Merci arth pour votre réponse

            *********schéma********

            (Mon ordinateur)(Serveur)
            Quand je fais l'insertion ici je ne reconnais aucun problème la BDD existe ici dans ce poste
            |
            |
            |

            (Ordinateur 2)(Client)
            Qui ne comporte pas BDD, j'ai fait le test dans ce poste, l'insertion ne fonctionne pas « FileNotFound »

            *******
            et merci d'avance
            1. Bjr
              pour bien précisé le problem et mieux comprondre

              PC1 (apatche,BDD) = serveur et client
              lors de l'inserstion depui PC1 l'image s'ajoute sans blém

              PC2 (poste distant ) = clien
              PC2 execute l'ajout mais l'erreur Java.io.FileNotFoundException :monimage.jpg (le fichier spécifié est introuvable) ce déclanche
              java est ce que j'ai bien compris ton probléme
              aussi j'ai le même probléme
              merci pour votre aide
              1. Contributeur
                OK donc c'est pas comme je pensais :-)

                Le mieux serait alors de regarder les logs de Tomcat, dans le fichier des erreurs pour comprendre quel fichier il veut ouvrir lors de l'exécution de la servlet depuis le poste client.
                1. Bonjour
                  Voila ce que me donne le fichier logs qui existe dans Tomcat :

                  17 nov. 2011 10:49:58 org.apache.catalina.core.AprLifecycleListener init
                  INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.6.0_17\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Java\jdk1.6.0_17\bin
                  17 nov. 2011 10:49:58 org.apache.coyote.http11.Http11Protocol init
                  INFO: Initialisation de Coyote HTTP/1.1 sur http-8080
                  17 nov. 2011 10:49:58 org.apache.catalina.startup.Catalina load
                  INFO: Initialization processed in 813 ms
                  17 nov. 2011 10:49:58 org.apache.catalina.core.StandardService start
                  INFO: D?marrage du service Catalina
                  17 nov. 2011 10:49:58 org.apache.catalina.core.StandardEngine start
                  INFO: Starting Servlet Engine: Apache Tomcat/6.0.18
                  17 nov. 2011 10:49:58 org.apache.catalina.core.StandardContext resourcesStart
                  GRAVE: Erreur lors du d?marrage des Resources statiques
                  java.lang.IllegalArgumentException: Le document base E:\Servlet\app1 n'existe pas ou n'est pas un r?pertoire lisible
                  at org.apache.naming.resources.FileDirContext.setDocBase(FileDirContext.java:141)
                  et merci beaucoup arth.
                  1. Contributeur
                    Les erreurs suivantes sont à corriger :

                    GRAVE: Erreur lors du d?marrage des Resources statiques
                    java.lang.IllegalArgumentException: Le document base E:\Servlet\app1 n'existe pas ou n'est pas un r?pertoire lisible
                    at org.apache.naming.resources.FileDirContext.setDocBase(FileDirContext.java:141)