SpringMVC文件上传

文章目录

  • 前言
  • 文件上传配置
  • 案例


前言

Spring MVC的文件上传是通过MultipartResolver对象实现的。

文件上传表单需要满足的3个条件如下:

form 表单的 method 属性设置为 post
form 表单的 enctype 属性设置为 multipart/form-data
提供的文件上传输入框。

文件上传配置

提示:这里可以添加本文要记录的大概内容:

在MvcConfig配置中:

    /**
     * 配置文件上传解析器
     */
    @Bean
    public CommonsMultipartResolver multipartResolver() {
        CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver();
        // 设置上传单个文件的大小限制,单位:字节     倒序:KB*MB*10,这里是10MB
        commonsMultipartResolver.setMaxUploadSizePerFile(10 * 1024 * 1024);
        // 设置上传文件的总大小,单位:字节    这里是100MB
        commonsMultipartResolver.setMaxUploadSize(100 * 1024 * 1024);
        return commonsMultipartResolver;
    }

提示:以下是本篇文章正文内容,下面案例可供参考

案例

首先在电脑上新建一个文件夹(自定义upload),无论C盘还是D盘,最好不要受管理员权限影响
SpringMVC文件上传_第1张图片
此时文件夹是空的,接下来复制该文件夹路径
SpringMVC文件上传_第2张图片
接下来在Controller 包中新建一个类

@Controller
public class UploadController {
	
	@RequestMapping("/upload")
	@ResponseBody
	public String upload(MultipartFile uploadFile) {
		
		// 上传文件的路径,或者  / 一个反斜线
		String path = "C:\\upload";
		// 获取上传文件的原始名字(带有后缀)
		String fileName = uploadFile.getOriginalFilename();
		// 使用UUID生成一个唯一不重复的文件名,原始文件的后缀不能变	
		fileName = UUID.randomUUID() + fileName.substring(fileName.lastIndexOf('.'));
		// 创建上传后文件对象
		File file = new File(path,fileName);
		// 传输上传  文件
		try {
			uploadFile.transferTo(file);
		} catch (Exception e) {
			// try catch 块  留一个,异常变成Exception
			e.printStackTrace();
		} 
		
		return "上传成功";
	}
}

代码解释:
当点击上传按钮时,浏览器会向后台发送一个 POST 请求。该请求将包含一些文件数据和其他表单值。Spring MVC提供了一种很方便的方式来处理这些类型的表单数据。这就是MultipartFile类。

在该控制器中的方法定义中,@RequestMapping("/upload")注解表示该方法将处理/ upload URL模式的所有请求。@ResponseBody注解将该方法的返回值转换为HTTP响应正文。

首先,定义了一个存储上传文件的路径,可以根据实际需求自己定义。紧接着,通过uploadFile.getOriginalFilename()方法获取上传文件的原始文件名。为了避免上传同名文件产生问题,这里使用UUID生成一个唯一不重复的文件名,并将其与上传文件的扩展名拼接起来。最后,创建一个File对象,用于存储上传文件到指定路径下。

最后,使用uploadFile.transferTo(file)方法将上传的文件保存到指定路径,如果遇到任何异常,就会在控制台上打印出错误信息,并通过return语句返回一个字符串,表示上传成功。

可以根据实际需求,修改上传路径、文件名等参数,以便将上传的文件保存到指定的位置。

测试:
SpringMVC文件上传_第3张图片
这时候打开上面新建的文件夹会发现里面多了个文件
SpringMVC文件上传_第4张图片


你可能感兴趣的:(#,SpringMVC,框架知识,文件上传)