前言:项目可在文章末尾的百度网盘连接,自取。
前言:本项目基于ssm+maven,使用jdk1.8、tomcat8。
前言:目前项目只有上传文件这一个功能,实现将指定文件下载到指定位置。后续会扩展,比如将上传的.xls文件的数据读出并存到数据库。
需求实现-- 上传文件-- java编码&.xml配置
一、java编码
1、接口编码摘要
1.1、添加spingmvc注解,让一个java类能够处理请求
开发处理具体业务逻辑的Handler(@Controller、@Request)。
@Controller:定义类控制器类。
@RequestMapping:处理请求注解。
@Controller
@RequestMapping("/fileService")
public class FileController {
}
也就是说,我们写的接口代码,是在Spring Web MVC工作流程的第五步和第六步,发挥作用的。
在请求到达后,处理器适配器的作用就是找到请求相应的处理器。
标注了@RequestMapping的每一个方法都可以看成是一个Handler,也就是处理器。
Handler负责具体实际的请求处理。SpringMVC中Handler可以是任意形式,只要能处理请求即可。
1.2、接口的入参和出参
入参file是CommonsMultipartFile类型,并不是基本类型。需要使用@RequestParam注解进行手动映射。
(入参是基本类型的时候,直接声明形参即可。)
public Result uploadFile(@RequestParam(value = "file") CommonsMultipartFile file) {
}
//若去掉@RequestParam(value = "file"),调接口会报500
出参是Result类型,有属性statusCode、message、data。
2、方法使用
2.1、File类的File(String parent, String child)构造方法
在JDK API 1.6.0中文版官方文档中,可以找到
大概意思就是,根据目录创建一个新File实例。
2.2、File类的mkdirs()方法
在JDK API 1.6.0中文版官方文档中,可以找到
大概意思就是,根据File实例的路径,在系统磁盘创建目录。
2.3、CommonsMultipartFile类的transferTo方法
在https://docs.spring.io/spring/docs/4.3.26.RELEASE/javadoc-api/官方文档里,可以找到
Transfer the received file to the given destination file,将接收到的文件传输到给定的目标文件。
执行transferTo()的语句后,CommonsMultipartFile类对象包含的文件就会传输到deat。
例如:
3、接口完整代码
备注:用到的工具类,可以在文章末尾的网盘资源里自取,或者改写。
@RequestMapping(value = "/uploadFile", method = RequestMethod.POST, produces = "application/json")
@ResponseBody
public Result uploadFile(@RequestParam(value = "file") CommonsMultipartFile file) {
logger.info(