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.