2021-08-26将用户头像从文件存储转为数据库存储

package com.demo.pojo;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NonNull;
import org.springframework.validation.annotation.Validated;
import java.time.LocalDateTime;
import java.util.Date;

@Data  //隐藏了 set,get方法
//@Repository
@Validated
@TableName("domain")
public class Accoutuser {
    @NonNull
    private  String  id;  //用户名
    private  String  pass;  //密码
    private  String idtime;  //登录时间
    private  String idname;  //昵称

    @TableField(value = "zctime",fill = FieldFill.INSERT)
    private  Date zctime;  //注册时间

    private  String sex;   // 性别
    private  String ratio;   // 随机盐

    @TableLogic
    @TableField(value = "deleted",fill = FieldFill.INSERT)
    private  Integer  deleted;  // 逻辑删除

    private  byte[]  img;    //头像id


    @TableField(value = "create_time",fill = FieldFill.INSERT)
    private Date create_time; //字段创建时间

//    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE)
    private  Date  update_time;  //字段修改时间

    @Version
    @TableField(value = "version" ,fill = FieldFill.INSERT)
    private  Integer version;   //版本控制

    public Accoutuser(){

    }
}

将图片以二进制存储在数据库中,在转化数据类型时,我只将img字段的属性从string改为byte【】,功能没有发生错误,可扩展性强

在本地测试时,思路是这样的
将前端传过来的文件转为字节流存储到数据库中,
然后需要图片时,在数据库中读取出来,然后生成图片放到一个文件暂放区,前端读取图片地址经过registry.addResourceHandler,将请求的图片绝对地址返回,各项功能ok

上线时,由于服务器是Linux系统,根路径为/ ,可能是对Linux不熟悉,registry.addResourceHandler后,前端请求图片依然是404,问题应该是
registry.addResourceHandler 的问题 ,暂时无法解决,改换思路

将其文件存储到项目的static文件中(相当于缓存区),然后在redis中设定其存活时间,以免缓存图片过多
2021/8/27

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爷可是个天才

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值