使用Springboot处理文件上传功能

需求

管理员需要在会议创建阶段上传文件,这一动作需要在管理员专用的网页上进行处理。管理员在进行所有动作之前必须经过口令的验证。单独使用FTP来进行文件的上传将会打断后续的权限管理,所以需要使用SpringBoot实现此功能。

实现

在配置文件application.yml的spring下添加文件传输限制:
在这里插入图片描述

文件上传使用了http的multipartFile进行传输,首先创建FileController处理请求,接收客户端上传的文件,并使用FileService处理上传。

@RestController
@RequestMapping("/file")
public class FileController {
    @Autowired
    private FileService fileService;

    @PostMapping("/upload")
    public Msg upload(@RequestParam MultipartFile file, int meetingId) {
        FileDO fileDO = fileService.uploadFile(file, meetingId);
        if (fileDO!=null) {
            return new Msg(200,"ok",fileDO);
        }
        return new Msg("上传失败");

    }

}

FileService根据会议讲文件存储到对应的位置,并在数据库中添加记录。

    public FileDO uploadFile(MultipartFile file, int meetingId){
        if (file.isEmpty()) {
            return null;
        }
        FileDO fileDO = null;
        File dir = new File(Integer.toString(meetingId));
        if(!dir.exists()){
            System.out.println(dir.mkdir());
        }
        File dest = new File(dir.getPath() +"/"+ file.getOriginalFilename());
        try {
            file.transferTo(dest);
            fileDO = new FileDO(file.getOriginalFilename(),dest.getPath(),meetingId);
            fileDao.createFileRecord(fileDO);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return fileDO;
    }

SQL操作,使用Mybatis处理自增主键。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.xhfron.paperless.dao.FileDao">
    <insert id="createFileRecord" parameterType="com.xhfron.paperless.bean.FileDO"
            keyProperty="uid" useGeneratedKeys="true">
        insert into `file`
        (`uid`, `name`, `address`, `meeting_id`)
        values(uid, #{name}, #{address}, #{meetingId})
    </insert>
</mapper>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值