import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Base64;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class ImageToBase64 {
private DataSource dataSource; // 數(shù)據(jù)源,需要根據(jù)實際情況進行注入或初始化
public void saveImageToDB(String imagePath) {
File imageFile = new File(imagePath);
try (FileInputStream fis = new FileInputStream(imageFile)) {
byte[] imageData = new byte[(int) imageFile.length()];
fis.read(imageData);
String base64Image = Base64.getEncoder().encodeToString(imageData);
saveToDatabase(base64Image);
} catch (IOException e) {
e.printStackTrace();
}
}
private void saveToDatabase(String base64Image) {
try (Connection conn = dataSource.getConnection();
PreparedStatement ps = conn.prepareStatement("INSERT INTO images (base64_image) VALUES (?)")) {
ps.setString(1, base64Image);
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
這個示例接口假設(shè)已經(jīng)有了一個數(shù)據(jù)庫連接池,并且已經(jīng)注入或初始化了數(shù)據(jù)源。這個接口的功能是讀取指定路徑的圖片文件,將其轉(zhuǎn)換為Base64編碼字符串,然后將其存入數(shù)據(jù)庫中??梢酝ㄟ^調(diào)用saveImageToDB
方法來實現(xiàn)這個功能。調(diào)用該方法時需要傳入要存儲的圖片文件的路徑。
?
?
在數(shù)據(jù)庫中存儲Base64格式的圖片時,通常使用BLOB類型或者LONGTEXT類型。其中,BLOB類型適用于存儲二進制數(shù)據(jù),而LONGTEXT類型適用于存儲較長的文本數(shù)據(jù),包括Base64編碼的字符串。
如果你使用MySQL數(shù)據(jù)庫,可以使用以下語句來創(chuàng)建一個可以存儲Base64格式圖片的表:
CREATE TABLE image_table (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
image LONGBLOB
);
其中,image列用于存儲Base64編碼的圖片數(shù)據(jù),LONGBLOB類型可以存儲最大長度為4GB的二進制數(shù)據(jù),足以存儲大多數(shù)圖片數(shù)據(jù)。
在Vue前端中展示Base64格式的圖片,可以使用<img>標簽,并將其src屬性設(shè)置為Base64編碼的字符串。以下是一個簡單的Vue組件示例,可以將Base64編碼的圖片數(shù)據(jù)渲染為圖片:
<template>
<div>
<img :src="base64Image" alt="Image" />
</div>
</template>
<script>
export default {
props: {
image: {
type: String,
required: true,
},
},
computed: {
base64Image() {
return `data:image/jpeg;base64,${this.image}`;
},
},
};
</script>
在這個示例中,組件接收一個Base64編碼的圖片數(shù)據(jù)作為屬性,然后通過計算屬性將其轉(zhuǎn)換為data URI格式的圖片,最后渲染為<img>標簽。文章來源:http://www.zghlxwxcb.cn/news/detail-560392.html
注意:在實際開發(fā)中,可能需要根據(jù)具體情況調(diào)整計算屬性中的data URI格式和圖片類型。文章來源地址http://www.zghlxwxcb.cn/news/detail-560392.html
到了這里,關(guān)于將圖片轉(zhuǎn)換成Base64格式存入數(shù)據(jù)庫以及在前端頁面展示的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!