当前位置: 代码迷 >> Java Web开发 >> spring mvc 上传文件获取不到filename,该如何处理
  详细解决方案

spring mvc 上传文件获取不到filename,该如何处理

热度:713   发布时间:2016-04-16 22:07:36.0
spring mvc 上传文件获取不到filename

上图为ext form 下图为Controller定义的file
------解决方案--------------------
参考下这个

模型
FileUpload.java
package com.mkyong.common.model;
import org.springframework.web.multipart.MultipartFile;
 
public class FileUpload{
 
MultipartFile file;
//getter and setter methods
 
}


控制器
FileUploadController.java
package com.mkyong.common.controller;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.validation.BindException;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
 
import com.mkyong.common.model.FileUpload;
 
public class FileUploadController extends SimpleFormController{
 
public FileUploadController(){
setCommandClass(FileUpload.class);
setCommandName("fileUploadForm");
}
 
@Override
protected ModelAndView onSubmit(HttpServletRequest request,
HttpServletResponse response, Object command, BindException errors)
throws Exception {
 
FileUpload file = (FileUpload)command;
 
MultipartFile multipartFile = file.getFile();
 
String fileName="";
 
if(multipartFile!=null){
fileName = multipartFile.getOriginalFilename();
//do whatever you want
}
 
return new ModelAndView("FileUploadSuccess","fileName",fileName);
}
}


校验器
FileUploadValidator.java
package com.mkyong.common.validator;
 
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;
import com.mkyong.common.model.FileUpload;
 
public class FileUploadValidator implements Validator{
 
@Override
public boolean supports(Class clazz) {
//just validate the FileUpload instances
return FileUpload.class.isAssignableFrom(clazz);
}
 
@Override
public void validate(Object target, Errors errors) {
 
FileUpload file = (FileUpload)target;
 
if(file.getFile().getSize()==0){
errors.rejectValue("file", "required.fileUpload");
}
}
}
  相关解决方案