`
阅读更多

Java 使用Base64将图片保存到数据库和显示图片

Java Base64保存图片

 

 

================================

©Copyright 蕃薯耀 2019年5月28日

http://fanshuyao.iteye.com/

 

一、将图片以Base64保存到数据库blob字段中

import org.apache.commons.io.FileUtils;

import sun.misc.BASE64Encoder;

import sun.misc.BASE64Decoder;

	/**
	 * 以Base64保存图片到数据库
	 * @param request
	 * @param file
	 * @throws Exception
	 */
	public void saveImage(HttpServletRequest request, File file) throws Exception{
		byte[] fileByteArray = FileUtils.readFileToByteArray(file);
		BASE64Encoder encoder = new BASE64Encoder();
		String imageString = encoder.encode(fileByteArray);
		String sql = "update image_table set image = ? where id = ?";
		List<Object> params = new ArrayList<Object>();
		params.add(imageString);
		params.add(1);
		getDao().update(sql, params);
	}

 

 二、页面请求及页面显示Base64字符串的图片

 

方式一:直接Base64方式显示(浏览器不会缓存图片)

 

	/**
	 * 显示Base64的图片
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 */
	public String showImage(HttpServletRequest request, HttpServletResponse response) throws Exception{
		
		File file = new File("C:\\Users\\xxx\\Desktop\\a.png");//图片路径
		byte[] fileByteArray = FileUtils.readFileToByteArray(file);
		
		BASE64Encoder encoder = new BASE64Encoder();
		String imageString = encoder.encode(fileByteArray);//转换成Base64形式,或者直接从数据库取出来
		
		request.setAttribute("imageString", imageString);

		return "/showImage";
	}
 
页面显示:图片是PNG格式的,但下面的2种方式在IE11下都能正常显示
<img src="data:image/png;base64,${imageString}" alt="PNG图片"/>
<img src="data:image/jpeg;base64,${imageString}" alt="Jpeg图片"/>
 
方式二:转成输出流方式显示(浏览器会缓存图片)
	/**
	 * 以输出流显示图片
	 * @param request
	 * @param response
	 */
	public void getImage(HttpServletRequest request, HttpServletResponse response){
		try {
			
			//将图片转成Base64格式
			File file = new File("C:\\Users\\xxx\\Desktop\\a.png");//图片路径
			byte[] fileByteArray = FileUtils.readFileToByteArray(file);
			BASE64Encoder encoder = new BASE64Encoder();
			String imageString = encoder.encode(fileByteArray);//转换成Base64形式,或者直接从数据库取出来

			//将Base64格式的图片解码成字节
			BASE64Decoder decoder = new BASE64Decoder();
			byte[] imageByteArray = decoder.decodeBuffer(imageString);

			//以图片流形式输出到页面
			response.setContentType("image/jpeg");
			ServletOutputStream out = response.getOutputStream();
			out.write(imageByteArray);
			out.flush();
			out.close();

		}catch (Exception e) {
			logger.error("系统程序产生异常:", e);
		}catch (Throwable thr) {
			logger.error("系统程序产生Throwable异常:", thr);
		}
	}
 
页面显示:
<img src="${pageContext.request.contextPath}/image/getImage" alt="图片"/>

 

 

================================

©Copyright 蕃薯耀 2019年5月28日

http://fanshuyao.iteye.com/

 

 

 

 

2
0
分享到:
评论
3 楼 蕃薯耀 2019-05-28  
jstl1point0 写道
图片文件放服务器硬盘上,数据库直接存URL地址,前台页面链接这个地址就行了,这样速度快些


是的,一般的图片只放在文件服务器上,然后提供请求地址,但有些很重要的图片是保存数据库的。
2 楼 jstl1point0 2019-05-28  
图片文件放服务器硬盘上,数据库直接存URL地址,前台页面链接这个地址就行了,这样速度快些
1 楼 蕃薯耀 2019-05-28  
Java 使用Base64将图片保存到数据库和显示图片,
Java Base64保存图片,
Java Base64显示图片,
Java Base64 图片

==========
蕃薯耀

相关推荐

    图片BASE64加密保存到数据库Blob类型中(放入数据库,并取出生成图片)

    本示例主要涉及的是如何将图片通过BASE64编码加密后存入数据库的Blob类型字段,并能从数据库中取出这些数据再还原成原始图片。以下是相关知识点的详细说明: 1. **BASE64编码**:BASE64是一种用于将二进制数据转换...

    图片转base64保存到数据库 , 并回显到浏览器

    总结来说,"图片转base64保存到数据库,并回显到浏览器"是Web开发中的常见技术,涉及Base64编码、数据库操作以及前端展示等多个方面。通过合理利用这些技术,可以简化图片处理流程,提高系统的可维护性。

    图片保存在数据库

    在上面的代码中,我们可以看到如何使用 Java 将图片保存到数据库中。我们使用 `@RequestMapping` 注解来处理图片上传请求,并使用 `MultipartFile` 对象来处理上传的图片文件。然后,我们使用 `ImageUtils` 工具类将...

    通过base64上传图片到服务器并读取图片

    总结,通过Base64编码,我们可以方便地将图片转换为字符串形式,实现图片的上传和下载。这种方式尤其适用于那些对跨域有严格限制的场景,因为Base64编码的图片数据可以作为纯文本进行传输。然而,需要注意的是,Base...

    SpringMvc上传本地图片保存数据库并实时显示

    6. **图片保存到数据库**: 将图片的URL或Base64编码保存到数据库中。例如: ```java Image image = new Image(); image.setUrl("file_path_or_base64"); imageRepository.save(image); ``` 7. **实时显示**...

    html5上传图片转换成base64值传入后台,再转换为图片保存在服务器

    后续更新成base64数据保存到数据库,直接base64转换成图片保存在服务器,数据库存储相关信息,下载或者查看的时候直接调用相对路径的文件即可。 毕竟base64的数据保存到数据库太影响查询了。另外在存储文件的时候...

    java实现本地读取图片存储到数据库中并在html网页显示

    在本文中,我们将深入探讨如何使用Java实现在本地读取图片并将其存储到数据库中,之后再通过HTML页面显示这些图片。这个过程涉及到的主要技术包括Java编程、数据库操作(特别是MySQL)以及前后端交互。 首先,我们...

    java存取图片到数据库

    在Java编程中,将图片存入数据库和从数据库读取以显示在网页上是一个常见的需求。这个过程通常涉及几个关键步骤,包括图片的编码、存储和解码。这里我们将详细探讨如何实现这一功能,主要围绕Java与关系型数据库(如...

    java 把PDF转换成BASE64

    // 这里可以进一步处理base64String,例如保存到数据库、发送网络请求等 } catch (IOException e) { System.err.println("Error reading PDF file: " + e.getMessage()); } ``` 此外,如果需要解码回原始的PDF文件...

    图片流转存Base64编码然后转图片 Spring 框下的

    例如,将解码后的图片保存到服务器的某个目录,然后返回一个`Resource`对象供前端访问: ```java DefaultResourceLoader resourceLoader = new DefaultResourceLoader(); Resource resource = resourceLoader.get...

    图片保存在数据库中取出显示在datalist上

    将图片保存到数据库中的过程通常是这样的:首先,通过用户上传或程序抓取等方式获取图片,然后使用编程语言(如C#或Java)读取图片文件为字节数组,接着将这个字节数组插入到数据库的`ImageData`字段中。例如,使用...

    将图片转成二进制并生成Base64编码字符串,再将二进制转换成各种图片

    有了解码后的字节数组,我们再次使用`ImageIO.write`方法,将这些字节写入一个新的`BufferedImage`对象,然后可以保存或显示这个图片。 在提供的`TestImageBinary.java`文件中,可能包含了执行这些操作的代码示例...

    图片上传至数据库及从数据库读取图片

    传统的做法是将图片保存在文件系统中,并在数据库中存储图片的路径。然而,有些情况下,直接将图片数据存储在数据库(通常是BLOB类型字段)中可能更合适,比如为了确保数据完整性、方便备份和恢复,或者在分布式系统...

    BASE64加密源码完整JAR包

    在Java中,我们可以使用内置的`java.util.Base64`类来实现BASE64的加密和解密操作。这个"BASE64加密源码完整JAR包"很可能包含了一个或者多个Java类,提供了方便的BASE64编码接口,便于开发者集成到他们的项目中。 ...

    javaBase64

    JavaBase64是Java平台上的一个库,专门用于处理Base64编码和解码操作。Base64是一种数据编码方式,常用于在不支持二进制传输的环境中传输文本数据,比如电子邮件系统或者HTML文档。它将二进制数据转换为可打印的...

    Android Base64对图片进行编码和解码.zip

    本教程将详细介绍如何在Android应用中使用Base64对图片进行编码和解码。 首先,了解Base64的基本原理。Base64编码通过将每3个字节的数据分为4组,每组6位,然后将这24位数据转换为4个64字符集中的字符来实现。由于...

    图片与Base64互转

    在提供的描述中,提到了一个名为`GetBase64.exe`的工具,这可能是一个简单的实用程序,用于方便地进行Base64和图片之间的转换。用户只需打开图片,该工具就会自动将其转换为Base64文本;反之,将Base64文本复制到...

    安卓图片和base64转换

    2. **本地存储**:在没有文件系统权限的情况下,可以将图片以Base64字符串的形式保存在SQLite数据库或SharedPreferences中。 3. **分享功能**:在分享图片到不支持直接分享图片的平台时,可以将图片转换为Base64字符...

    ssm框架上传图片保存到本地和数据库示例

    SSM框架上传图片保存到本地和数据库示例 ...SSM框架上传图片保存到本地和数据库示例中,我们使用了Spring+SpringMVC+MyBatis框架集合,实现了图片上传、Base64编码、图片保存到本地和数据库的功能。

    base64的XML或XML生成png图片.rar

    这里,我们关注的是一个Java实现的项目,它允许我们将XML数据通过Base64编码,然后生成PNG图像。这个过程涉及到几个关键的技术点,让我们逐一深入探讨。 首先,**Base64编码**是一种将二进制数据转化为ASCII字符串...

Global site tag (gtag.js) - Google Analytics