Précédent   Forum du club des développeurs et IT Pro > Java > Serveurs, conteneurs, et Java EE
Serveurs, conteneurs, et Java EE Forum d'entraide sur la spécification Java EE, les serveurs d'application Java EE (GlassFish, JBoss, JOnAS, Weblogic, Websphere...) ou partiellement Java EE (Tomcat, Jetty, Spring DM...), ainsi que la spécification OSGi et ses implémentations (Equinox, Felix...). Avant de poster -> FAQ Java EE - Les cours OSGi
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 03/08/2012, 17h28   #1
aitBaamran
Candidat au titre de Membre du Club
 
Inscription : mars 2012
Messages : 34
Détails du profil
Informations forums :
Inscription : mars 2012
Messages : 34
Points : 12
Points : 12
Par défaut Upload de fichier avec Spring MVC

Bonjour,

Je travaille sur une application basée sur Spring MVC et je cherche à réaliser un upload de fichier.

Voilà quelques lignes concernant Fileupload que j'ai réalisées :
Code :
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
    @RequestMapping(value="/uploadeFile", method=RequestMethod.POST)
    public ModelAndView create(@ModelAttribute("uploadItem")UploadItem uploadItem, BindingResult result,
            HttpServletRequest request, HttpServletResponse response,
            HttpSession session) {
 
        MultipartFile multipartFile = uploadItem.getFile();
        String fileName="";
 
        // image type of file processing...
        System.err.println("-------------------------------------------");
        try {
          InputStream inputStream = null;
          OutputStream outputStream = null;
          if (multipartFile.getSize() > 0) {
                 inputStream = multipartFile.getInputStream();
                 fileName = request.getRealPath("") +
                  "/images/"+ multipartFile.getOriginalFilename();              
                 outputStream = new FileOutputStream(fileName);
                 int readBytes = 0;
                 byte[] buffer = new byte[10000];
                 while ((readBytes = inputStream.read(buffer, 0, 10000)) != -1) {
                        outputStream.write(buffer, 0, readBytes);
                  }
                 outputStream.close();
                 inputStream.close();
               }           
         } catch (Exception e) {
                e.printStackTrace();
         }
        // .......................................... 
        Map model = new HashMap();
        model.put("fileName", multipartFile.getOriginalFilename());
        model.put("filepath", "images/"+multipartFile.getOriginalFilename());
        ModelAndView mav=new ModelAndView("FileUploadSuccess");   
        mav.addObject(model);
 
        return mav ;
  }
Code :
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
package spring.dto;
 
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
 
public class UploadItem {
 
    MultipartFile file;
    private String name;
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public MultipartFile getFile() {
        return file;
    }
 
    public void setFile(MultipartFile file) {
        this.file = file;
    }
}
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<form:form action="uploadeFile.do"  commandName="uploadItem">
 
<table align="center" >
 
<tr>
<td>Please Select File:</td>
<td>
<form:input type="file" path="file" id="file" /></td>
<td><form:input  path="name"/></td>
</tr>
 
<tr>
<td></td>
<td><font color="red"><form:errors path="file"/></font></td>
</tr>
 
<tr>
<td></td>
<td><input type="submit" value="File Upload"/></td>
</tr>
</table>
 
</form:form>
Le souci est que lorsque je veux sauver l'objet uploadeItem sur le serveur, le contenu de l'attribut file est null.
Par contre le contenu, de l'attribut name est rempli.

Quelqu'un saurait-il m'indiquer d'où peut venir le problème ?

Merci d'avance pour votre aide.
aitBaamran est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/09/2012, 10h50   #2
napalme
Invité de passage
 
Homme
Inscription : septembre 2012
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2012
Messages : 6
Points : 1
Points : 1
Par défaut enctype du form

Salut,

Je pense que ça vient du fait que ton form n'est pas du type multipart.

Ajoute cet attribut à ton form :
enctype="multipart/form-data"
napalme est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 02h22.


 
 
 
 
Partenaires

Hébergement Web