Java的件上传有很多种实现方式,原生的java程序使用的都是HttpServletRequest来接收前台的文件数据,然后通过file进行转换等等来实现的。
本文章是使用springboot来实现文件上传的功能:
废话不多说,直接上代码
依赖部分我就不放上来了。
1、首先,在配置文件中定义好文件的上传大小限制,Spring Boot工程嵌入的tomcat限制了请求的文件大小默认为1MB,单次请求的文件的总数不能大于10Mb.要更改这个默认值需要在配置文件(如application.properties)进行如下设置。
# 启用多部分文件
spring.servlet.multipart.enabled=true
#=======文件上传
#文件大小设置
#单个文件的大小
spring.servlet.multipart.max-file-size=30MB
#单次请求的文件的总大小
spring.servlet.multipart.max-request-size=1000MB
#Tomcat的上传文件最大值
server.tomcat.max-http-form-post-size=-1
2、配置文件定义完就到前端的代码啦。
<form th:action="@{/user/uploadFile}" method="post" enctype="multipart/form-data">
<input name="file" th:type="file">
<button type="submit">上传</button>
</form>
注意:一定要在form标签中加上 enctype=“multipart/form-data” 属性,否则后面执行时会报错。
3、接下来就是后台的代码了,这个很简单,都注释的非常清楚了,代码也少。
@RequestMapping(value = "/uploadFile",method = RequestMethod.POST)
@ResponseBody
public String file(@RequestParam("file") MultipartFile multipartFile){
if (multipartFile == null){
return "文件为空";
}
String OriginalFilename = multipartFile.getOriginalFilename();
String fileName = System.currentTimeMillis()+"."+OriginalFilename.substring(OriginalFilename.lastIndexOf(".")+1);
String filePath = "H:\\admin\\springbootFile\\";
File dest = new File(filePath+fileName);
if (!dest.getParentFile().canExecute()){
dest.getParentFile().mkdirs();
}
try {
multipartFile.transferTo(dest);
}
catch ( Exception e) {
e.printStackTrace();
return "上传失败";
}
return "上传成功";
}
好了,到这里文件上传就写好了,接下来就去测试一下;下面就是我的执行结果
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)