java怎么把图片以base64字节存入数据库,并将其显示到jsp页面上
来源:互联网 发布:设计模式 python 书 编辑:程序博客网 时间:2024/05/22 00:40
这两天工作上遇到了这个问题,在网上查了很多资料,感觉比较乱,故在此整理一下。
我要实现的功能就是 页面显示数据库中的base64字节码 也就是三张图片 用户浏览上传本地图片 点击上传 页面上的图片会切换。
一 前期准备
1.数据库建表 imgCODE字段我选得clob类型 用来存二进制字节码的
2.jsp页面的浏览选择文件 上传 打红圈的是需要注意的 enctype这是需要写上 选择文件时会用上
3.实体类
二 将图片存入数据库
@RequestMapping(value = "/upload")
public String upload(ModelMap modelMap, HttpServletRequest req, HPicture p,
@RequestParam("files") MultipartFile file)
throws IllegalStateException, IOException {
if (file != null) {// 判断上传的文件是否为空
String path = null;// 文件路径
String type = null;// 文件类型
String fileName = file.getOriginalFilename();// 文件原名称
System.out.println("上传的文件原名称:" + fileName);
// 判断文件类型
type = fileName.indexOf(".") != -1 ? fileName.substring(
fileName.lastIndexOf(".") + 1, fileName.length()) : null;
if (type != null) {// 判断文件类型是否为空
if ("GIF".equals(type.toUpperCase())
|| "PNG".equals(type.toUpperCase())
|| "JPG".equals(type.toUpperCase())) {
// 项目在容器中实际发布运行的根路径
String realPath = req.getSession().getServletContext()
.getRealPath("/");
// 自定义的文件名称
String trueFileName = String.valueOf(System
.currentTimeMillis()) + fileName;
// 设置存放图片文件的路径
path = realPath + trueFileName;
System.out.println("存放图片文件的路径:" + path);
// 转存文件到指定的路径
file.transferTo(new File(path));
InputStream in = null;
byte[] data = null;
// 读取图片字节数组
try {
in = new FileInputStream(path);
data = new byte[in.available()];
in.read(data);
in.close();
} catch (IOException e) {
e.printStackTrace();
}
// 对字节数组Base64编码
BASE64Encoder encoder = new BASE64Encoder();
String a = encoder.encode(data);
String pp = a;
p.setImgcode(pp);
p.setImgpath(path);
picservice.saveA(p);
String ad = realPath + trueFileName;
System.out.println("文件成功上传到指定目录下");
} else {
System.out.println("不是我们想要的文件类型,请按要求重新上传");
}
} else {
System.out.println("文件类型为空");
}
} else {
System.out.println("没有找到相对应的文件");
}
二 从数据库中读取图片
我给存入图片的数据定义了no这个数据库列表 ,根据no=1,查到那条记录,我用的是list存取的值,那base64的值就是list.get(0)
三 如何显示在jsp页面上
从数据库查出来就可以用${}显示在jsp页面上,注意标签格式是这样的<img src="data:image/png;base64,${pic.imgcode }"
-------------------------------------------------------------------------------------------------------------------------------------------------------------end
- java怎么把图片以base64字节存入数据库,并将其显示到jsp页面上
- WinForm把图片以二进制的方式存入到数据库,并将存入数据库的二进制图片读出显示到PictureBox中
- 将图片以二进制格式存入数据库,并以流的方式展现在jsp页面
- 将图片以BASE64式存入,将BASE64图片显示在网页上
- 把图片文件存入oracle数据库 然后读取并显示在jsp页面
- Struts2+Hibernate3将图片保存于mysql数据库并将其显示在JSP页面
- Struts2+Hibernate3将图片保存于mysql数据库并将其显示在JSP页面
- java hibernate 将图片存入数据库,并从数据库取出显示在网页上
- 将图片转成base64字符串并在JSP页面显示的Java代码
- 将数据库中以image类型保存的图片另存为jpg文件,并将其路径存入数据库
- 将二维码图片转字节编译base64在页面显示
- jsp将图片存入数据库
- 图片以二进制形式存到数据库中,并从数据库中读出显示在页面上
- SQLServer数据库的图片存储(Java实现)并显示到jsp上
- JAVA将图片以二进制形式存入Access数据库
- 取出数据库中BASE64编码后的图片二进制流数据显示在JSP页面上
- 图片以字节的形式存入数据库,下面是图片显示处理
- 将图片以二进制流存入数据库
- RSA、DSA和ECDSA三者的签名
- 结构体
- google地图静态下载和js调用
- C#字符串练习
- crm代码评审学习
- java怎么把图片以base64字节存入数据库,并将其显示到jsp页面上
- AndroidStudio3.0特性
- 基本排序算法
- c++引用与指针的区别(着重理解)
- Java高级篇-0-为什么要掌握Java高级篇知识
- Android studio混淆 打包 日志错误日志跟踪
- 使用Python发送和读取Lotus Notes邮件
- 正式踏入程序员行列
- JS声明提升