springboot上传文件的两种方式

1.文件保存在服务器,url地址保存在数据库

2.直接把文件以二进制形式保存到数据库中数据类型为blob的一个字段

/**
*上传图片,使用mybatis-plus保存到数据库
*User为实体类,数据库对应user表,有id、image两个属性
*/
@PostMapping("/upload")
    @ResponseBody
    public String upload(@RequestParam("file") MultipartFile file) throws Exception{
          
   
        if(!file.isEmpty()){
          
   
            User user=new User();
            user.setImage(file.getBytes());
            userMapper.insert(user);
        }
        return "ok";
    }
/**
*前端通过id获取数据库中的图片
*/
    @GetMapping("/getImage")
    @ResponseBody
    public void getImage(String id,HttpServletResponse resp) throws Exception{
          
   
        User user=userMapper.selectById(id);
        byte[] image = (byte[])user.getImage();
        resp.setContentType("image/jpeg");
        ServletOutputStream out = resp.getOutputStream();
        out.write(image);
        out.flush();
        out.close();
    }

3.前端代码

<form action="/upload" method="post" enctype="multipart/form-data">
    <input type="file" name="file" /><br/>
    <input type="submit" name="" id="" value="提交" />
</form>
经验分享 程序员 微信小程序 职场和发展