以下是将文件转换为Base64编码字符串的Java代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Base64;public class ImageToBase64 {public static String convertImageToBase64(String filePath) throws IOException {File file = new File(filePath);return convertImageToBase64(file);}public static String convertImageToBase64(File file) throws IOException {String fileName = file.getName();String extension = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();String mimeType;switch (extension) {case "jpg":case "jpeg":mimeType = "image/jpeg";break;case "png":mimeType = "image/png";break;case "gif":mimeType = "image/gif";break;case "bmp":mimeType = "image/bmp";break;case "webp":mimeType = "image/webp";break;default:mimeType = "application/octet-stream";}try (FileInputStream fileInputStream = new FileInputStream(file)) {byte[] fileBytes = new byte[(int) file.length()];fileInputStream.read(fileBytes);String base64Content = Base64.getEncoder().encodeToString(fileBytes);return "data:" + mimeType + ";base64," + base64Content;}}public static void main(String[] args) {try {String imagePath = "path/to/your/image.jpg";String base64Image = convertImageToBase64(imagePath);System.out.println("Base64 Image (truncated): " + base64Image.substring(0, 50) + "...");} catch (IOException e) {e.printStackTrace();}}
}
数据库设计建议,在数据库中存储Base64图片时,建议使用TEXT或LONGTEXT类型字段:
CREATE TABLE images (id INT AUTO_INCREMENT PRIMARY KEY,image_name VARCHAR(255),image_data LONGTEXT, upload_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);