资源简介

图片BASE64加密保存到数据库Blob类型中(放入数据库,并取出生成图片),完整的demo例子,可运行。

资源截图

代码片段和文件信息

package org.pic;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import sun.misc.base64Decoder;
import sun.misc.base64Encoder;

public class SavePic {
public static Connection conn = null;
public static PreparedStatement pStmt = null;

/**
 * 数据库中加入图片等文件
 */
public static void InsertPic() {
String sql = “insert into TEACHER(IDNAMEPHOTObase64PHOTO) values(‘1‘???)“;
try {
Class.forName(“oracle.jdbc.driver.OracleDriver“);
conn = DriverManager.getConnection(
“jdbc:oracle:thin:@//192.168.1.183:1521/orcl“
“LWW“ “lww“);
pStmt = conn.prepareStatement(sql);

pStmt.setString(1 “Lily“);// 设置字段NAME值

// 数据库插入图片/word/excel等
File file = new File(“src/pic.jpg“);
FileInputStream fis = new FileInputStream(file);

//创建一个和文件大小一样的缓冲区
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
pStmt.setBytes(2 buffer);//内容设置到字段PHOTO中
System.out.println(“未加密图片长度:“+fis.available());

String base64 = new base64Encoder().encode(buffer);

System.out.println(“加密后图片长度:“ +base64.length());
pStmt.setBytes(3 base64.getBytes());//内容设置到字段base64PHOTO中
int n = pStmt.executeUpdate();
System.out.println(n + “条记录插入“);
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException| IOException e) {
e.printStackTrace();
} finally {
try {
pStmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

/**
 * 从数据库中取出图片等文件
 */
public static void getPic() {
String sql = “select IDNAMEPHOTObase64PHOTO from TEACHER where ID=?“;
try {
conn = DriverManager.getConnection(
“jdbc:oracle:thin:@//192.168.1.183:1521/orcl“
“LWW“ “lww“);
pStmt = conn.prepareStatement(sql);

pStmt.setString(1 “1“);

ResultSet rs = pStmt.executeQuery();
if (rs.next()) {
System.out.println(“ssssssssss“);
//获取图片字段
// FileOutputStream fos = new FileOutputStream(new File(“abc.jpg“));
// InputStream is = rs.getBinaryStream(“photo“);
//
// byte[] buffer = new byte[4 * 1024];
// int length = 0;
// while ((length = is.read(buffer)) != -1) {
// fos.write(buffer 0 length);
// }

//获取图片加密字段内容,并进行base64解密
FileOutputStream fos = new FileOutputStream(new File(“abcbase64.jpg“));
byte[] basebt = rs.getBytes(“base64photo“);

System.out.println(“加密:“ +basebt.length);
byte[] by = new base64Decoder().decodeBuffer(new String(basebt));
System.out.pr

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        457  2018-12-13 14:43  Total\.classpath

     文件        381  2018-11-29 16:22  Total\.project

     文件        598  2018-11-29 16:22  Total\.settings\org.eclipse.jdt.core.prefs

     文件       5035  2018-12-13 17:02  Total\bin\org\pic\SavePic.class

     文件    5369934  2018-08-10 09:13  Total\bin\pic.jpg

     文件    2111220  2018-12-13 11:01  Total\lib\ojdbc6.jar

     文件       3971  2018-12-13 17:02  Total\src\org\pic\SavePic.java

     文件      24535  2018-12-13 11:59  Total\src\pic.jpg

     目录          0  2018-12-13 14:43  Total\bin\org\pic

     目录          0  2018-12-13 17:02  Total\src\org\pic

     目录          0  2018-12-13 17:02  Total\bin\org

     目录          0  2018-12-13 17:02  Total\src\org

     目录          0  2018-11-29 16:22  Total\.settings

     目录          0  2018-12-13 17:02  Total\bin

     目录          0  2018-12-13 11:01  Total\lib

     目录          0  2018-12-13 17:03  Total\src

     目录          0  2018-12-13 17:03  Total

----------- ---------  ---------- -----  ----

              7516131                    17


评论

共有 条评论