I am trying to upload a file using spring
. Below is my code how I am working on it
but if I try to use it I am getting this response
:
HTTP Status 400 - Required MultipartFile parameter 'file' is not present
I dont get what the error is.
I am using advanced rest client for testing and I am uploading file as an attachment.
My Javacode:
@RequestMapping(value = "/upload",headers = "Content-Type=multipart/form-data", method = RequestMethod.POST)
@ResponseBody
public String upload(@RequestParam("file") MultipartFile file)
{
String name= "test.xlsx";
if (!file.isEmpty()) {
try {
byte[] bytes = file.getBytes();
BufferedOutputStream stream =
new BufferedOutputStream(new FileOutputStream(new File(name)));
stream.write(bytes);
stream.close();
return "You successfully uploaded " + name + "!";
} catch (Exception e) {
return "You failed to upload " + name + " => " + e.getMessage();
}
} else {
return "You failed to upload " + name + " because the file was empty.";
}
}
Spring needs the
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />
bean to handle file-uploads.
You should register this bean in your
application context
file.The Content-Type should also be valid. In your case
enctype="multipart/form-data"
EDIT1:
You can give the upload and memory size to the bean properties:
when you select the file in advance rest client, on the right side there is a input box, write in that input box name of the parameter, in your case name of parameter is file
Parameter name defined here in controller @RequestParam("file")
it works for me after i wrote in that input box name of the parameter "file" when i already have well configured the bean id in the Krajee bootstrap inputfile example ("https://github.com/kartik-v/bootstrap-fileinput").