龙空技术网

小白:Spring MVC轻松实现文件上传下(多文件)

码农的小人生 179

前言:

如今朋友们对“netmvc上传多个”大体比较看重,姐妹们都想要了解一些“netmvc上传多个”的相关文章。那么小编在网络上汇集了一些关于“netmvc上传多个””的相关资讯,希望看官们能喜欢,咱们快快来了解一下吧!

1、2、4步骤同上传单个文件一样,有需要的可以看一下我上篇文章小白:Spring MVC轻松实现上传文件功能,看了一定不后悔哟。

3、在项目views文件夹(项目中装页面的文件夹)下新建一个上传多个文件的页面

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>上传多个文件示例</title>

<link rel="stylesheet" href="<%=request.getContextPath()%>/resources/css/main.css" type="text/css" />

</head>

<body>

<div align="center">

<h1>上传多个附件</h1>

<form method="post" action="/HelloSpringMVC/hello/doMultiUpload" enctype="multipart/form-data">

<input type="file" name="file1"/>

<br/>

<input type="file" name="file2"/>

<button type="submit" >提交</button>

</form>

</div>

</body>

</html>

注意以下几点:

(1)form表单提交的类型一定要加上enctype="multipart/form-data",表示不对所提交的内容编码。

(2)action="" 路径中前面要加项目名,这里项目名是HelloSpringMVC。

(3)doMultiUpload是本表单所提交的对应的处理方法。名为doMultiUpload。

(4)要传几个文件就加入几个 <input type="file" name="file2"/> 不过name的值要不同

5、在Controller类中加入访问入口方法(就是定位到上传多个文件的页面)

//定位到上传多个文件界面 /hello/uploadMulti

@RequestMapping(value="/uploadMulti", method=RequestMethod.GET)

public String showUploadPage2(){

return "uploadMultifile"; //view文件夹下的上传多个文件的页面

}

6、在Controller类中定义上传文件的响应方法(就是表单中的所提交的action中的方法名)

/**

* 上传多个附件的操作类

* @param multiRequest

* @return

* @throws IOException

*/

@RequestMapping(value="/doMultiUpload", method=RequestMethod.POST)

public String doUploadFile2(MultipartHttpServletRequest multiRequest) throws IOException{

Iterator<String> filesNames = multiRequest.getFileNames(); //获得所有的文件名

while(filesNames.hasNext()){ //迭代,对单个文件进行操作

String fileName =filesNames.next();

MultipartFile file = multiRequest.getFile(fileName);

if(!file.isEmpty()){

log.debug("Process file: {}", file.getOriginalFilename());

FileUtils.copyInputStreamToFile(file.getInputStream(), new File("d:\\temp\\imooc\\",

System.currentTimeMillis()+ file.getOriginalFilename()));

}

}

return "success";

}

这里需要注意:

1、这里与上传单个文件处理方法不同的是接收参数由MultipartFile类型变为了MultipartHttpServletRequest。

2、MultipartFile由MultipartHttpServletRequest对象的getFile(fileName)方法获得。

7、运行验证

输入地址进入上传页面

提交成功页面

文件上传的位置

至此,利用Spring MVC实现文件上传的功能全部结束了了。

标签: #netmvc上传多个