下面就给您详细讲解“SpringMVC 单文件上传与多文件上传实例”的完整攻略。
下面就给您详细讲解“SpringMVC 单文件上传与多文件上传实例”的完整攻略。
一、SpringMVC 单文件上传实例
1.1 相关依赖说明
在 pom.xml 文件中增加以下依赖:
<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.4</version>
</dependency>
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-io</artifactId>
    <version>1.3.2</version>
</dependency>
1.2 前端表单处理
前端页面需要增加一个文件上传 input,用于上传文件,示例如下:
<form method="post" action="/upload" enctype="multipart/form-data">
    <input type="file" name="file" />
    <input type="submit" value="上传" />
</form>
1.3 后端控制器处理
后端控制器中需要增加处理上传文件的方法,示例如下:
@RequestMapping(value = "/upload", method = RequestMethod.POST)
@ResponseBody
public String upload(HttpServletRequest request) throws Exception {
    // 上传文件的存储路径
    String uploadPath = request.getServletContext().getRealPath("/") + "upload";
    // 创建上传文件的存储路径
    File uploadDir = new File(uploadPath);
    if (!uploadDir.exists()) {
        uploadDir.mkdirs();
    }
    // 创建文件上传对象
    DiskFileItemFactory factory = new DiskFileItemFactory();
    factory.setSizeThreshold(4096);
    factory.setRepository(uploadDir);
    ServletFileUpload upload = new ServletFileUpload(factory);
    // 获取上传的文件列表
    List<FileItem> items = upload.parseRequest(request);
    for (FileItem item : items) {
        // 判断是否为上传文件类型
        if (!item.isFormField()) {
            String fileName = item.getName();
            String filePath = uploadPath + File.separator + fileName;
            File file = new File(filePath);
            item.write(file);
        }
    }
    return "文件上传成功!";
}
以上后端处理逻辑主要是通过调用 ServletFileUpload 实现了上传文件的处理,其各个参数含义可以参考 maven 依赖包中所带源码中的注释。
二、SpringMVC 多文件上传实例
2.1 相关依赖说明
在 pom.xml 文件中增加以下依赖:
<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.4</version>
</dependency>
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-io</artifactId>
    <version>1.3.2</version>
</dependency>
2.2 前端表单处理
前端页面需要增加多个文件上传 input,用于上传多个文件,示例如下:
<form method="post" action="/uploadMulti" enctype="multipart/form-data">
    <input type="file" name="file1" />
    <input type="file" name="file2" />
    <input type="file" name="file3" />
    <input type="submit" value="上传" />
</form>
2.3 后端控制器处理
后端控制器中需要增加处理上传多个文件的方法,示例如下:
@RequestMapping(value = "/uploadMulti", method = RequestMethod.POST)
@ResponseBody
public String uploadMulti(HttpServletRequest request) throws Exception {
    // 上传文件的存储路径
    String uploadPath = request.getServletContext().getRealPath("/") + "upload";
    // 创建上传文件的存储路径
    File uploadDir = new File(uploadPath);
    if (!uploadDir.exists()) {
        uploadDir.mkdirs();
    }
    // 创建文件上传对象
    DiskFileItemFactory factory = new DiskFileItemFactory();
    factory.setSizeThreshold(4096);
    factory.setRepository(uploadDir);
    ServletFileUpload upload = new ServletFileUpload(factory);
    // 获取上传的文件列表
    List<FileItem> items = upload.parseRequest(request);
    for (FileItem item : items) {
        // 判断是否为上传文件类型
        if (!item.isFormField()) {
            String fileName = item.getName();
            String filePath = uploadPath + File.separator + fileName;
            File file = new File(filePath);
            item.write(file);
        }
    }
    return "文件上传成功!";
}
以上后端处理逻辑和单文件上传类似,只是在获取上传的文件列表时可以处理多个上传文件,如果希望获取到具体的上传文件名称,可以通过 FileItem 对象的 getFieldName() 方法获取到 input 控件的 name 属性值。
				 沃梦达教程
				
			本文标题为:SpringMVC 单文件上传与多文件上传实例
				
        
 
            
        
             猜你喜欢
        
	     - Java简单实现银行ATM系统 2022-11-16
 - Struts中的Action 单例与多例详解 2023-07-31
 - servlet+jsp实现过滤器 防止用户未登录访问 2023-07-30
 - 详解Java中static关键字的使用和原理 2023-06-16
 - Java SSM实现前后端协议联调详解下篇 2023-04-18
 - jsp导出excel并支持分sheet导出的方法 2023-08-03
 - AngularJS使用ng-inlude指令加载页面失败的原因与解决方法 2023-12-11
 - Java实战玩具商城的前台与后台实现流程 2023-08-10
 - 使用BitSet位集合,一个重复校验工具 2023-06-30
 - Java结合Vue项目打包并进行服务器部署 2023-03-15
 
						
						
						
						
						
				
				
				
				