spring mvc上传功能很强大。

spring mvc(注解)上传文件的简单例子,这有几个需要注意的地方
1.form的enctype=”multipart/form-data” 这个是上传文件必须的
2.applicationContext.xml中 <bean id=”multipartResolver” class=”org.springframework.web.multipart.commons.CommonsMultipartResolver”/> 关于文件上传的配置不能少

页面:

<%@pagepageEncoding="utf-8"%>

<!DOCTYPEhtml>

<html>

<head>

<metacharset="utf-8">

<title>上传图片</title>

</head>

<body>

<formaction="upload.do"method="post"enctype="multipart/form-data">

<inputtype="file"name="file"/><inputtype="submit"value="Submit"/></form>

</body>

</html>

方法如下:

@RequestMapping("/upload2" )

public String upload2(HttpServletRequest request,HttpServletResponse response) throws IllegalStateException, IOException {

//创建一个通用的多部分解析器

CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());

//判断 request 是否有文件上传,即多部分请求

if(multipartResolver.isMultipart(request)){

//转换成多部分request

MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request;

//取得request中的所有文件名

Iterator<String> iter = multiRequest.getFileNames();

while(iter.hasNext()){

//记录上传过程起始时的时间,用来计算上传时间

int pre = (int) System.currentTimeMillis();

//取得上传文件

MultipartFile file = multiRequest.getFile(iter.next());

if(file != null){

//取得当前上传文件的文件名称

String myFileName = file.getOriginalFilename();

//如果名称不为“”,说明该文件存在,否则说明该文件不存在

if(myFileName.trim() !=""){

System.out.println(myFileName);

//重命名上传后的文件名

String fileName = "demoUpload" + file.getOriginalFilename();

//定义上传路径

String path = "H:/" + fileName;

File localFile = new File(path);

file.transferTo(localFile);

}

}

//记录上传该文件后的时间

int finaltime = (int) System.currentTimeMillis();

System.out.println(finaltime - pre);

}

}

return "/success";

}

spring 配置文件中添加为:

<!-- 支持上传文件 -->

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>


具体参考如大神的博客:

http://www.cnblogs.com/fjsnail/p/3491033.html