Bonjour,
Voici mon problème: sur une de mes pages de mon projet je propose à l'utilisateur d'uploader une image:

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
 
<form name="Formupload" action="uploadRes" method="post">
	<h1>Upload d'un fichier</h1>
	<p>Nom:<input type="text" name="nom"></input>
	<br></br>
	Catégorie:
	<select name="categorie">
		<% ResultSet rs = (ResultSet) request.getAttribute("cat"); 
                                while (rs.next())
                                {
                                        out.println("<option value="+ rs.getInt("id_cat")+ ">"+rs.getString("nom_cat")+"</option>");
                                }
                        %>
	</select>
	<br></br>
	Fichier:<input type="file" name="fichier"></input></p>
	<br></br>
	<br></br>
	<input type="submit" name="valider" value="Valider"></input>
</form>

Lorsque l'utilisateur clic sur le bouton valider, j'appelle la servlet d'url uploadRes suivante:

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
 
public void doGet(	HttpServletRequest request, 
				HttpServletResponse response)
				throws IOException, ServletException{
 
		try {
	           Class.forName("com.mysql.jdbc.Driver").newInstance();
	           System.out.println("Le chargement du driver fonctionne");
	       } 
		catch (Exception ex) {
	           System.out.println("erreur");
	       }
		Connection conn;
		FileInputStream fis;
		try{
	    	   String url = "jdbc:mysql://localhost:xxx";
	    	   conn = DriverManager.getConnection(url, "mdp", "kwj30eqe") ;
	    	   System.out.println("URL ok!");
	    	   System.out.println(request.getParameter("nom"));
	    	   File img2 = new File(request.getParameter("fichier"));
 
	    	   PreparedStatement pstmt = null;
	    	   pstmt = conn.prepareStatement("insert into fichier(cat_fic,nom_fic,fic_fic) VALUES (?,?,?)");
	    	   pstmt.setInt(1,Integer.parseInt(request.getParameter("categorie")));
	    	   pstmt.setString(2,request.getParameter("nom"));
	    	   fis = new FileInputStream(img2);
	    	   pstmt.setBinaryStream(3,(InputStream)fis, (int)(img.length()));
	    	   int s =pstmt.executeUpdate();
	    	   if (s>0)
	    	   {
	    		   System.out.println("Fichier uploadé");
	    	   }
	    	   else
	    	   {
	    		   System.out.println("Erreur, le fichier n'a pas pu etre uploadé");
	    	   }
	    	   request.getRequestDispatcher("uploadResult.jsp").forward(request, response);
	    	   pstmt.close();
	    	   conn.close();
	       }
	       catch( SQLException ex ) {
	    	   System.out.println("Erreur dans URL!");
	    		// cas d'erreur
	    	}
 
 
 
	}
 
	public void doPost(	HttpServletRequest request, 
			HttpServletResponse response)
			throws IOException, ServletException{
 
		doGet(request, response);		
	}

Le probléme vient du fait que
Code : Sélectionner tout - Visualiser dans une fenêtre à part
request.getParameter("fichier")
me renvoie que le nom du fichier mais pas son chemin absolu et donc j'ai l'erreur suivante:
java.io.FileNotFoundException: image1.png (Le fichier spécifié est introuvable)

Comment dois-je m'y prendre pour avoir le chemin absolu du fichier sans copier le fichier sur un serveur?
Merci de votre aide!