文件上传
2024年11月17日大约 1 分钟
@RequestMapping("/data")
public String index(
MultipartFile file,
HttpServletRequest request
) {
// 判断文件是否为空
if (file != null && file.getSize() > 0) {
// 文件名称 = UUID + 文件后缀
String imgName = UUID.randomUUID() + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
// 文件要存入的位置
String path = request.getServletContext().getRealPath("/img");
try {
// 文件存入服务器
file.transferTo(new File(path + "/" + imgName));
} catch (IOException e) {
throw new RuntimeException(e);
}
}
return "redirect:/";
}
上述代码时文件上传的后端代码,其中使用UUID作为文件的名称为了防止文件的命名重复,其次文件的存入位置可以根据不同的情况进行不同的改变
<form action="/data" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="提交">
</form>
这个是前端代码,其中必须要是post请求方式,必须有 enctype="multipart/form-data"
在上传的input标签中,name名称必须和后端的接收名称一致如此才不会错
<!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 默认编码 -->
<property name="defaultEncoding" value="utf-8"/>
<!-- 文件大小最大值 -->
<property name="maxUploadSize" value="10485760000"/>
<!-- 内存中的最大值 -->
<property name="maxInMemorySize" value="40960"/>
</bean>