springMVC 多文件上传

采用springMVC 框架技术做了一个多文件上传的小功能,实现方式如下:

1. 导入相关Jar包,除了springMVC 框架自身所需的包外,还需要导入文件上传的Jar包:commons-fileupload-1.3.1.jar 及  commons-io-2.2.jar 这两个包,这两个包可以从其他地方找到下载,加入到WEB-INFO目录中的lib子目录中,自动引入到Web项目中来。

2. springMVC 的配置文件(springMVC-servlet.xml)中配置文件上传相关配置信息,配置如下:

     
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">



2.编写视图Jsp文件,表单必须有name属性及 enctype="multipart/form-data"属性设置:

    

多文件上传

 
enctype="multipart/form-data">

使用spring mvc提供的类的方法上传文件







3. 编写Controller 类的中代码:

   @Controller
   public class FileUploadController {
@RequestMapping("springUpload")
public String springUpload(HttpServletRequest request) throws Exception {  
// 将当前上下文初始化给 CommonsMutipartResolver (多部分解析器)
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(
request.getSession().getServletContext());
// 检查form中是否有 enctype="multipart/form-data"属性值
if (multipartResolver.isMultipart(request)) {
// 将request变成多部分request
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
// 获取multiRequest 中所有的文件名
Iterator iter = multiRequest.getFileNames();  
while (iter.hasNext()) {
// 一次遍历所有文件
MultipartFile file = multiRequest.getFile(iter.next().toString());  
if (file != null) {

                                        //设置文件上传路径,此路径为项目发布路径的根目录,及文件在客户端的文件名,一般情况下是需要改文件名的。
String path = request.getSession().getServletContext()
.getRealPath("/userfile/") + file.getOriginalFilename();
// 上传
file.transferTo(new File(path));
}
}
}
return "fileUpload";  //返回视图名
}
}

你可能感兴趣的:(技术)