Bonjour,
j'ai besoin de votre aide pour un problème sur lequel je suis bloqué actuellement. je m'explique.
je voudrais intégrer les données provenant d'un fichier texte de l'ordinateur directement sur une table de ma base de données.
Pour cela j'ai un formulaire jsp qui me permet d'aller chercher le fichiers sur l'ordi avec la méthode post. Ensuite la servlet doit récupérer le fichier et insérer le contenu du fichier texte dans ma base de données. les données du fichiers texte sont séparé par des "," et sont mis ligne par ligne.
J'ai deux problème majeurs.
1) je veux en premier enregistrer le fichier sur un serveur pour effectue le traitement sur ce fichier et non celui du disque. Mais il me signal qu'il y'a une erreur sur le fichier de destination.
2) je voudrais lire le contenu du fichier texte et l’insérer dans la base. Mais je suis bloqué en ce niveau.

Merci de votre aide

voici le code de ma jsp et la servlet en cas de besoin

Code jsp : 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
30
31
32
33
34
35
36
37
<%@ page pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Integration de fichiers</title>
<link type="text/css" rel="stylesheet" href="<c:url
value="/inc/style.css"/>" />
<c:import url="/inc/menu.jsp" />
</head>
<body>
<form action="<c:url value="/integration" />" method="post"
enctype="multipart/form-data">
<fieldset>
<legend>Integration de fichier OPCVM</legend>
<label for="description">Description du
fichier</label>
<input type="text" id="description"
name="description" value="" />
<span class="succes"><c:out value="${description}"
/></span>
<br />
<br />
<label for="fichier">Emplacement du fichier <span
class="requis">*</span></label>
<input type="file" id="fichier" name="fichier" />
<c:out value="${fichier}"
/></span>
<br />
<input type="submit" value="Envoyer"
class="sansLabel" />
<br />
</fieldset>
</form>
</body>
</html>

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
package com.servlets;
 
import javax.servlet.http.HttpServlet;
 
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
 
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.http.Part;
 
@WebServlet(name = "Integration", urlPatterns = {"/integration"})
@MultipartConfig
public class Integration extends HttpServlet {
	private final static Logger LOGGER = 
            Logger.getLogger(Integration.class.getCanonicalName());
 
	public static final String VUE_SUCCES = "/WEB-INF/rapportIntegration.jsp";
	public static final String VUE_FORM = "/WEB-INF/integration.jsp";
	public static final String CHAMP_DESCRIPTION = "description";
	public static final String CHAMP_FICHIER = "fichier";
	public void init() throws ServletException {
/* connexion a la base de donnée */
	} 
	public void doGet( HttpServletRequest request,
	HttpServletResponse response ) throws ServletException, IOException
	{
	/* À la réception d'une requête GET, simple affichage du
	formulaire */
	this.getServletContext().getRequestDispatcher( VUE_FORM).forward( request, response );
}
 
	public void doPost( HttpServletRequest request,
	HttpServletResponse response ) throws ServletException, IOException
	{
	/*
 
   final String path = "C:\Users\....\Documents\destination";
    
	String description = request.getParameter( CHAMP_DESCRIPTION );
	Part part = request.getPart( CHAMP_FICHIER );
	String nomFichier = getNomFichier(part);
	OutputStream out = null;
    InputStream contenu = null;
    final PrintWriter writer = response.getWriter();
 
    try {
        out = new FileOutputStream(new File(path + File.separator
                + nomFichier));
        contenu = part.getInputStream();
 
        int read = 0;
        final byte[] bytes = new byte[1024];
 
        while ((read = contenu.read(bytes)) != -1) {
            out.write(bytes, 0, read);
        }
        writer.println("New file " + nomFichier + " created at " + path);
        LOGGER.log(Level.INFO, "File{0}being uploaded to {1}", 
                new Object[]{nomFichier, path});
    } catch (FileNotFoundException fne) {
        writer.println("You either did not specify a file to upload or are "
                + "trying to upload a file to a protected or nonexistent "
                + "location.");
        writer.println("<br/> ERROR: " + fne.getMessage());
 
        LOGGER.log(Level.SEVERE, "Problems during file upload. Error: {0}", 
                new Object[]{fne.getMessage()});
    } finally {
        if (out != null) {
            out.close();
        }
        if (contenu != null) {
            contenu.close();
        }
        if (writer != null) {
            writer.close();
        }
    }
    
    if ( nomFichier != null && !nomFichier.isEmpty() ) {
    	String nomChamp = part.getName();
    	request.setAttribute( nomChamp, description );
    	}
    	this.getServletContext().getRequestDispatcher( VUE_SUCCES ).forward(request, response );
    	
}
 
public String getNomFichier(Part part) {
    final String partHeader = part.getHeader("content-disposition");
    LOGGER.log(Level.INFO, "Part Header = {0}", partHeader);
    for (String content : part.getHeader("content-disposition").split(";")) {
        if (content.trim().startsWith("filename")) {
            return content.substring(
                    content.indexOf('=') + 1).trim().replace("\"", "");
        }
    }
    return null;
}
 
 
}