文章目录
- 文件上传配置
- 案例
文件上传配置
提示:这里可以添加本文要记录的大概内容:
在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盘,最好不要受管理员权限影响
此时文件夹是空的,接下来复制该文件夹路径
接下来在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
语句返回一个字符串,表示上传成功。
可以根据实际需求,修改上传路径、文件名等参数,以便将上传的文件保存到指定的位置。
测试:
这时候打开上面新建的文件夹会发现里面多了个文件