Reputation: 1654
I am trying to upload a file to the server directory from client machine. I used the following codes :
FileUpload.jsp
<form:form commandName="fileUpload" action="upload.action" method="post" enctype="multipart/form-data">
<form:label path="fileData">Upload a File</form:label> <br />
<form:input type="file" path="fileData" />
<input type="submit" value="upload" >
</form:form>
In my Controller:
@RequestMapping("/upload.action")
public String upload(@ModelAttribute("fileUpload") FileUpload fileUpload,HttpServletResponse response,Model model)
{
CommonsMultipartFile multipartFile = fileUpload.getFileData();
String orginalName = multipartFile.getOriginalFilename();
String filePath = "/my_uploads/"+orginalName;
File destination = new File(filePath);
String status ="success";
try {
multipartFile.transferTo(destination);
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
status="failure";
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
status="iofailure";
}
model.addAttribute("status", status);
return "home";
}
FileUpload.java :
{
private CommonsMultipartFile fileData;
....
}
NullPointerException
is thrown at the line String orginalName = multipartFile.getOriginalFilename();
.. what wrong thing i have done??
Upvotes: 4
Views: 11422
Reputation: 469
@RequestMapping("/upload.action")
public String upload(@RequestParam("fileData") MultipartFile file,
HttpServletResponse response,Model model)
{
//Controller logic...
}
you should have the same name in the parameter for your request handler method ,whatever you given in the FileUpload Pojo for multipartFile ("fileData") it should be in the parameter
Thanks,
Upvotes: 0
Reputation: 94489
Try adding the MultipartFile
as a parameter in your requesthandler.
@RequestMapping("/upload.action")
public String upload(@RequestParam(value = "file") MultipartFile file,
HttpServletResponse response,Model model)
{
//Controller logic...
}
This will require you to register a new bean in your dispatcher's configuration.
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="5000000"/>
</bean>
Upvotes: 6