上传图片存储到数据库

上传图片存储到数据库

点点

2021-07-18 21:08 阅读 408 喜欢 0

一、思路

首先要知道上传图片到后台的思路。

1、上传文件流到数据库

2、上传base64或者blob到数据库

3、当图片很多的时候,需要建立一个图片库,专门保存图片。然后将图片路径存到数据库

二、限制性

就我的水平来看,前两种方法当图片太大的话就不适用了。我用的是在前台将图片转换为base64然后传到后台保存导数据库,这样下次直接取出来放到src属性中就可以显示图片了。第三种方式其实应该是很常用地。

三、代码

3.1 将图片转换为base64

3.1.1前台js转

    <!Doctype   html>
   <heml>
     <head>
         <meta charset="UTF-8"/>
       <title>nick getBase64</title>
    </head>
   <body>
    <input accept="image/gif,image/jpeg,image/jpg,image/png" type="file" id="up" />
    <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
     <script>
     $(function() {
    $("#up").change(function() {
        var file = this.files[0];
        if(undefined == file){
            return ;
        }
        r = new FileReader();
        r.readAsDataURL(file);
        r.onload = function(e) {
            var base64 = e.target.result;
            var _file = dataURLtoBlob(base64); // c就是base64字符串
            console.log(base64)
        }
    });

      });
   </script>
    </body>
    </html>

3.1.2后台转

              File file = new File(imageUrl);//图片的绝对路径

    FileInputStream is = new FileInputStream(file);
    byte[] data = new byte[is.available()];
    is.read(data);
    is.close();
    BASE64Encoder encoder = new BASE64Encoder();
    String base64Img =  encoder.encode(data);
    System.out.print(base64Img);

3.2 base64与blob的互转

           //**dataURL to blob**
                function dataURLtoBlob(dataurl) {
                    var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
                        bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
                    while (n--) {
                        u8arr[n] = bstr.charCodeAt(n);
                    }
                    return new Blob([u8arr], { type: mime });
                }

                //**blob to dataURL**
                function blobToDataURL(blob, callback) {
                    var a = new FileReader();
                    a.onload = function (e) { callback(e.target.result); };
                    a.readAsDataURL(blob);
                }

3.3base64转换为流

                public void startDownFTP1(HttpServletRequest request,
        HttpServletResponse response) throws Exception {
    FtpConfig list = null;
    flag1 = false;
    list = ftpConfigServiceI.findObjectByPK(null);
    FtpConfigController.connectFtp(list);
    String efilename = request.getParameter("efilename");
    //2020年7月18日11:19:37 sfb
    String imagepath = request.getParameter("imagepath");
    String img = FtpConfigController.downloadFile1(list,
            efilename, imagepath);// 下载ftp文件测试 ftp /图片名称/文件夹 已通过解密但是有Base64加密
    Base64 endcoder=new Base64();
    byte [] images;//返回图像
    images=endcoder.decodeBase64(img);//Base64转换成byte数组
    response.reset();
    response.getOutputStream().write(images);
    flag1 = true;
    FtpConfigController.closeFtp();

}

凑合着看看吧!也不是好懂!希望可以帮到感兴趣的小伙伴!

转载请注明出处: http://sdxlp.cn/article/tak.html


如果对你有用的话,请赏给作者一个馒头吧 ...或帮点下页面底部的广告,感谢!!

赞赏支持
提交评论
评论信息(请文明评论)
暂无评论,快来快来写想法...
推荐
嗯很多小伙伴私信小编,说是推广劵不会使用,大数据时代有非常多的推广平台与渠道,以后赚钱的赛道将是多方面线下与线上的多平台的互动,小红书是一款非常受欢迎的社交电商平台,拥有着庞大的用户群体和优质的内容创作者。对于品牌主来说,小红书是一个非常好的推广平台,可以帮助品牌主快速地提升品牌知名度和销售额
现在的社交软件有很多,但是实用面积广的就哪几个,里边QQ是最早的功能也是比较全的,QQ是现在十分常用的游戏社交软件之一,有些小伙伴不知道怎么找到手机中的QQ文件,接下来小编就给小伙伴们介绍一下具体的操作步骤。
日常生活中会用到通讯工具,常用的就是QQ,微信,钉钉。有时候想要保存一些微信聊天记录,要如何才能永久储存呢?办法有很多,这个方法是最省钱省事保存最久的,可以将它们导入到word中,下面是具体办法,小编带小伙伴走一遭!
随着科技的快速发展,人工智能(AI)已经在各个领域大放异彩。其中,AI换脸技术以其独特的魅力引起了广泛的关注。这项技术主要运用深度学习算法,通过分析人脸的几何结构,将生成的模型映射到另一张人脸图像上,实现人脸的巧妙转换。
在日常生活中,每个人都有自己的风格,例如电脑微信图标,很多小伙伴们喜欢把任务栏的图标隐藏起来,变得更加简约。一定会有多数小伙伴还不知道如何去隐藏微信图标吧,和如何修改微信电脑版的标签与权限呢?
近期很多当红app被央视点名,主要原因是我们个人的信息被过度的无情泄露了,微信聊天中我们可能用到很多私密的东西,比如身份证,银行卡等。即使我们有防范意识,在我们的聊天中删除了从我们手机的图库中删除啦。我们感觉可以放心啦.真的是这样吗?真的可以放心了吗?看一下下面的文章,你会有自己的选择。
直播带货已经成为当今的主流,许多小伙伴都喜欢在快手小黄车中购买主播卖的商品,我们在交易过程中需要与客服进行联系,那么我们应该怎么查看与客服的聊天信息呢?今天,小编就教小伙伴们在快手小黄车中查看客服信息。
微信的小技巧让世界看到你!教小伙伴们怎样使用微信。多关注我,给自己一个不一样的自己。每天生活疼并快乐着。积极生活,活出一个不一样的自己。加油!奥利给!