【发布时间】:2017-10-02 08:15:11
【问题描述】:
我有一个表单,允许用户选择多个图像上传到服务器。问题是在我的控制器files.size() 中返回one,即使我没有选择任何要上传的文件。所以if(files != null && files.size() > 0) 行总是被执行。
@RequestMapping(value="/advert/add", method=POST)
public void insertAdverts(HttpServletRequest request,
HttpServletResponse response,
@ModelAttribute("fileUpload") FileUpload fileUpload)
throws NumberFormatException, IOException, IllegalStateException,
ServletException, FileUploadException{
//Get uploaded files and store them
List<MultipartFile> files = fileUpload.getFiles();
List<String> fileNames = new ArrayList<String>();
try{
if(files != null && files.size() > 0){
for(MultipartFile image:files){
String fileName = image.getOriginalFilename();
String[] fileSplit = fileName.split("\\.");
fileNames.add(fileName);
File uploadedFile = new File(uploadDirectory+"\\"+fileName);
uploadedFile.createNewFile();
image.transferTo(uploadedFile);
}
}
这是 FileUpload 类
public class FileUpload implements Serializable{
private static final long serialVersionUID = 1L;
private int menuId;
private int subMenuId;
private String adLocation;
private String adSubject;
private String adBody;
private String contactNo;
private String contactEmail;
private String fileName;
private List<MultipartFile> files = null;
.....
和jsp形式
<form:form id = "add-advert-form" method="post" action="/AdPost/advert/add"
enctype="multipart/form-data" modelAttribute="fileUpload">
...
<form:input type="file" id="adPictures" accept="image/*"
name="files[]" multiple="multiple" path="files"/>
</form:form>
谁能告诉我为什么List.size() 返回one 而不是zero 以及如何获得正确的列表大小。
这是调试窗口中文件的样子:
【问题讨论】:
-
我不知道,但我想知道
fileItem中有什么。也许这暗示了正在发生的事情。 -
我也遇到了同样的问题,正要问这个问题。有谁知道如何解决这个问题?
标签: java spring jsp multipartform-data