前言:
而今兄弟们对“如何向数据库中传输图片到电脑”可能比较注意,我们都需要知道一些“如何向数据库中传输图片到电脑”的相关知识。那么小编同时在网摘上收集了一些有关“如何向数据库中传输图片到电脑””的相关文章,希望兄弟们能喜欢,你们快快来学习一下吧!一、思路
首先要知道上传图片到后台的思路。
1、上传文件流到数据库
2、上传或者blob到数据库
3、当图片很多的时候,需要建立一个图片库,专门保存图片。然后将图片路径存到数据库
二、限制性
就我的水平来看,前两种方法当图片太大的话就不适用了。我用的是在前台将图片转换为然后传到后台保存到数据库,这样下次直接取出来放到src属性中就可以显示图片了。第三种方式其实应该是很常用的。
三、代码3.1 将图片转换为3.1.1前台js转
<!Doctype html><heml><head><meta charset="UTF-8"/><title>nick get</title></head><body><input accept="image/gif,image/jpeg,image/jpg,image/png" type="file" id="up" /><script src=";></script><script>$(function() {$("#up").change(function() {var file = this.files[0];if(undefined == file){return ;}r = new FileReader();r.readAsDataURL(file);r. = function(e) {var = e.target.result;var _file = dataURLtoBlob(); // c就是字符串console.log()}});});</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();Encoder encoder = new Encoder();String Img = encoder.encode(data);System.out.print(Img);3.2 与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. = function (e) { callback(e.target.result); };a.readAsDataURL(blob);}3.3转换为流
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 sfbString imagepath = request.getParameter("imagepath");String img = FtpConfigController.downloadFile1(list,efilename, imagepath);// 下载ftp文件测试 ftp /图片名称/文件夹 已通过解密但是有加密endcoder=new ();byte [] images;//返回图像images=endcoder.decode(img);//转换成byte数组response.reset();response.getOutputStream().write(images);flag1 = true;FtpConfigController.closeFtp();}
凑合着看看吧!也不是好懂!希望可以帮到感兴趣的小伙伴!
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。