需求实现-- 上传文件-- java编码&.xml配置

本文介绍了如何在基于SSM的项目中实现文件上传功能,详细讲解了Java编码和Spring MVC配置过程。通过添加Spring MVC注解、使用CommonsMultipartFile处理文件、配置文件上传解析器等步骤,实现了将文件从客户端上传并保存到服务器的逻辑。同时,文章提供了项目的完整代码和测试方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:项目可在文章末尾的百度网盘连接,自取。

前言:本项目基于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工作流程的第五步和第六步,发挥作用的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aYIRFXkY-1587343989908)(F:\优快云博客草稿\pic\功能实现\1-上传文件\2020-04-19_140629.png)]

在请求到达后,处理器适配器的作用就是找到请求相应的处理器。

标注了@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中文版官方文档中,可以找到

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qgvM7Lvs-1587343989911)(F:\优快云博客草稿\pic\功能实现\1-上传文件\2020-04-19_172152.png)]

大概意思就是,根据目录创建一个新File实例。

2.2、File类的mkdirs()方法

在JDK API 1.6.0中文版官方文档中,可以找到

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HFqjzwZw-1587343989914)(F:\优快云博客草稿\pic\功能实现\1-上传文件\2020-04-19_171358.png)]

大概意思就是,根据File实例的路径,在系统磁盘创建目录。

2.3、CommonsMultipartFile类的transferTo方法

https://docs.spring.io/spring/docs/4.3.26.RELEASE/javadoc-api/官方文档里,可以找到

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vOl9L3JJ-1587343989918)(F:\优快云博客草稿\pic\功能实现\1-上传文件\2020-04-19_153324.png)]

Transfer the received file to the given destination file,将接收到的文件传输到给定的目标文件。

执行transferTo()的语句后,CommonsMultipartFile类对象包含的文件就会传输到deat。

例如:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ijm3jKX0-1587343989923)(F:\优快云博客草稿\pic\功能实现\1-上传文件\2020-04-19_173539_2.png)]

3、接口完整代码

备注:用到的工具类,可以在文章末尾的网盘资源里自取,或者改写。

@RequestMapping(value = "/uploadFile", method = RequestMethod.POST, produces = "application/json")
@ResponseBody
public Result uploadFile(@RequestParam(value = "file") CommonsMultipartFile file) {
   
   
	logger.info(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值