Reputation: 1
I am trying to make a little bit complex form for uploading files, Since it is different file size, I separate number of type, the form as follows : multiple and single file upload
I have succeeded to upload multi file with different name,
<form name="uploadForm" method="post" enctype="multipart/form-data" action="file.spring?action=upload">
<input type="file" name="upFile[0]">
<input type="file" name="upFile[1]">
<input type="file" name="upFile[2]">
</form>
but for the following form
<form name="uploadForm" method="post" enctype="multipart/form-data" action="file.spring?action=upload">
<input type="file" name="upFile">
<input type="file" name="upFile">
<input type="file" name="upFile">
</form>
the only file uploaded was the first one,
before inserting, I prepare Util class as follows to get the fileList,
public static List<Map<String, MultipartFile>> getFilesFromRequest(HttpServletRequest request){
List<Map<String, MultipartFile>> fileList = new ArrayList<Map<String,MultipartFile>>();
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Iterator<String> it = multipartRequest.getFileNames();
while(it.hasNext()){
String key = it.next();
if(!multipartRequest.getFile(key).isEmpty()){
Map<String, MultipartFile> file = new HashMap<String, MultipartFile>();
file.put(key, multipartRequest.getFile(key));
fileList.add(file);
}
}
return fileList;
}
is there something that I miss ?
Update :
I found the solution by changing MultipartHttpServletRequest to DefaultMultipartHttpServletRequest
Thanks to @Bart , the answer can be found in this post
Upvotes: 0
Views: 692
Reputation: 68715
You are using the same name(upfile) for all the files
<form name="uploadForm" method="post" enctype="multipart/form-data" action="file.spring?action=upload">
<input type="file" name="upFile">
<input type="file" name="upFile">
<input type="file" name="upFile">
</form>
and in your Util you are trying to iterate the files by names
Iterator<String> it = multipartRequest.getFileNames();
So you will get only one
Upvotes: 1