栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

前端拿到文件存储到数据库,还能从数据库恢复到本地的方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

前端拿到文件存储到数据库,还能从数据库恢复到本地的方法

这里用的是图片进行测试 文件保存于数据库

首先前端拿到文件,在java中使用的是 MultipartFile 这个类
前端代码中:


这里的name=“file1” 很重要 因为对应后端是:

@RequestMapping("/自己写")
    public String uploadimg(HttpServletRequest request, HttpServletResponse response,
                          @RequestParam("file1") MultipartFile file1)throws Exception {
                          自己写的代码块
                          }

这里的 @RequestParam(“file1”)中的 file1 就和前端的 file1 对应了起来 所以 不能乱起名
这样就拿到前端传过来的文件
然后 转换成2进制

byte[] bytes1 = file1.getBytes();

就这一句代码即可
接着就是存入数据库

首先数据库对应的格式要正确

数据库类型要设置成blob的类型,mediumbolb只是能存储的文件的大小不一样而已,但归根结底也是blob类型,无伤大雅。

那么一个表基本上会对应一个实体类,另外,例如数据库中的 varchar 、text都对应java中的String
那么 blob对应什么类型呢 对应java中的 byte[] 所以,java的实体类应该是

    private String xxxxx;
    private String xxxx;
    private byte[] img1;//看这里
    private xxxxxxx xxxxxx;

实体类写完了 下面就是写Mapper文件 以及写xml文件
在写xml文件的时候需要注意:

        insert into 表名
        values (
                #{某某某},
                #{某某某},
                #{img1,typeHandler=org.apache.ibatis.type.BlobTypeHandler},
                #{某某某}
                )
    

这么写就好 其他的都没什么需要注意的
下面就是写Service 什么什么的 这个都没什么不同
至此,文件保存至数据库结束

文件从数据库恢复
  • 自己写select语句
  • 拿到封装好的对象 然后用他的 .get()方法得到byte[]数组
  • 使用 FileOutputStream fileOutputStream=new FileOutputStream(
    new File(你想把图片恢复到哪个位置,写个绝对路径在这里,注意!!!是路径+文件名+后缀 ) );
  • 然后 fileOutputStream.write(刚才得到的那个byte[]);
  • 恢复完成 记得关闭流
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/877758.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号