Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Insérrer un fichier dans une base de données [ Réseau & internet / Servlet ] (rakyouna)

lundi 28 août 2006 à 16:30:21 | Insérrer un fichier dans une base de données

rakyouna

Slt à tous,

Je veux enregistrer un fichier, qui sera saisi à partir d'un formulaire, dans une base de données MySQL.
Voici un extrait de mon formulaire HTML:

......
<TD> Saisir un fichier : </TD>
<TD> <input type="file" name="fichier" id="fichier"/> </TD> 
......

et un extrait de ma Servlet:

.....
String file   = request.getParameter("fichier");
.....
query = "Insert into MaTable(tab_file) Values(" + file + ")";
.....

(Le champs tab_file est de type BLOB)
Ce code ne marche pas et n'inserre pas le chemin du fichier ds la Base de Données.

La requête suivante marche sans pb quand je l'exécute directement sur la console de MySQL:

Insert into MaTable(tab_file) values (LOAD_FILE("C:/Fichier1.txt"));

Qu'elle est la solution  ?????


lundi 28 août 2006 à 21:32:24 | Re : Insérrer un fichier dans une base de données

Ombitious_Developper

Salut :

Pour insérer un fichier dans une base de données on peut utiliser les PreparedStatement.
Vu que je ne connais pas les champs de votre table, je vais supposé que votre table s'appelle myTable et qu'elle contient un seul champ celui contenant le fichier.
(La démarche restera toujours valable)

   // path : correspond au chemin absolu où se trouve le fichier
   File file = new File (path);
   FileInputStream inputStream = new FileInputStream (file);

   try {
      PreparedStatement preStmt;
      // Supposons que vous avez un objet de type Connection "connect"
      preStmt = connect.prepareStatement ("INSERT INTO myTable VALUES (?)");
      
      try {
         // Vu que votre fichier est ASCII on utilise "setAsciiStream"
         // Sinon on utilise "setBinaryStream"
         // 1 ici correspond au rang du champ dans la requête

         preStmt.setAsciiStream (1, inputStream, (int)file.length ());
         preStmt.executeUpdate ();
      }
      finally {
         preStmt.close ();
      }
   }
   finally {
      inputStream.close ();
   }


mardi 29 août 2006 à 13:03:09 | Re : Insérrer un fichier dans une base de données

rakyouna

Salut,
Mç pour la reponse. Le code ci-dessus marche bien. Je l'ai modifié un peu comme suit:

public void sauveIMG(Connection conn, String location, String name) throws Exception
     {
       File monImage = new File(location);
       FileInputStream istreamImage = new FileInputStream(monImage);
       try
       {
         PreparedStatement ps = conn.prepareStatement("insert into myTable (name, img) values (?,?)");
         try
         {
           ps.setString(1, name);
           // setAsciiStream() : si le fichier est ASCII
           // setBinaryStream() : si fichier image par exp
           // 2 est le rang du champ "img"
           ps.setBinaryStream(2, istreamImage, (int) monImage.length());
           ps.executeUpdate();
         }
         finally
         {
           ps.close();
         }
       }
       finally
       {
         istreamImage.close();
       }
     }

Puis je fais l'appel suivant:
sauveIMG(connection, "C:/logo.gif", "logo");

Mais il me reste le pb de recuperation du path du fichier à partir d'un formulaire HTML:

La ligne suivante :
 out.println("<p><b>Logo : " + request.getParameter("fichier"));
m'affiche: "Logo : null" sur la servlet au lieu d'afficher le path.

g les lignes suivants ds le formulaire:
......
<TD> Saisir un fichier : </TD>
<TD> <input type="file" name="fichier" id="fichier"/> </TD> 
......

??????


mercredi 30 août 2006 à 12:55:10 | Re : Insérrer un fichier dans une base de données

rakyouna

Salut à tous,

Comment récupérer, dans une Servlet, le chemin d'un fichier saisi dans un formulaire HTML?
Le formulaire contient:

......
<TD> Saisir un fichier : </TD>
<TD> <input type="file" name="fichier" id="fichier"/> </TD> 
......

La méthode  request.getParameter("fichier")) ne me permet pas de récupérer le chémin du fichier  !




Cette discussion est classé dans : fichier, base, données, file, tab


Répondre à ce message

Sujets en rapport avec ce message

extaire les données d'un fichier XMl et les enregistrer dans une base de donnée access [ par maytica ] je veut analyser un fichier XMl et extraire ses données pour les enregistrer dans une base de donnée "access",j'essayer pas mal de fois mais ça n'a p exporter des données access vers un fichier excel [ par munisys ] salut,j ai besoin d aide !!!!c'est urgent svp.En fait, je programme une application en java.et donc je dois creer un bouton ...une fois je clique dess InputStream a String coder type Mime base 64 ?? [ par littlenemo ] Bonjour ou Bonsoir...Je suis dans le cadre de mon stage de fin d'etude sur la conseption d'un servelette utilisant un serveur Apache/WebDav.Donc pour une base de données embarquée en 1 seul fichier [ par romuluslepunk ] Bonjour,Je cherche un systeme de base de données pouvant être embarqué, gratuit et multiplateforme.J'ai essayé hsqdb et derby mais elles sont structur Problème de Connexion MS Access et Java [ par eclisia ] Bonjour,</fon java et base de données fichier [ par youri01 ] Bonjour, je suis débutant en java, je souhaite me lancer dans la réalisation d'applications de gestion de base de données. par exemple : une applica enregistrer un système de fichier dans une base de données [ par habitech ] Salut, j'ai un projet plutot embettant.Je dois enregistrer l'arborescence d'un disque dans une base de données (j'utilise mysql) et pouvoir la restitu extraction des données d'un fichier HTML et les remettre dans une base de données [ par kawtarinpt ] bonjour j'ai besoin dans mon application d'extraire des données d'un fichier HTML et les remettre dans une base de données Oracle. Alors, j'aimerais b comment insérer des données dans ma base via java [ par nam90 ] bonjour à tous,je voulais savoir comment je peux insérer des données qui se trouve un fichier excel directement dans ma base sans faire insert into ma JTable et JButtom [ par wafa1987 ] Bonjour,Voici mon probléme:J'ai une interface graphique qui contient une table JTable qui contient des boutons vers des documents PDF. J'ai utiliser c


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,640 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.