|
|
AIWROKÊÖ»úÊý¾Ý¿âMySQLÊý¾Ý¿â½ØÍ¼Æ¬ÅúÁ¿ÉÏ´«²Ù×÷½Å±¾
- //🍎½»Á÷QQȺ711841924Ⱥһ£¬Æ»¹ûÄÚ²âȺ£¬528816639
- // AIWROKÈí¼þÊý¾Ý¿âͼƬÅúÁ¿ÉÏ´«²Ù×÷½Å±¾
- // ʵÏÖ¶ÁÈ¡±¾µØÍ¼Æ¬¡¢×ª»»ÎªBase64¡¢ÉÏ´«µ½Êý¾Ý¿â¡¢ÒÔ¼°´ÓÊý¾Ý¿â»¹ÔͼƬµÄ¹¦ÄÜ
- print.log("===== Êý¾Ý¿âͼƬÉÏ´«²Ù×÷½Å±¾¿ªÊ¼ =====");
- var conn = null;
- var pstmt = null;
- /**
- * JavaÔÉú·½·¨£º½«Îļþת»»ÎªBase64×Ö·û´®
- */
- function fileToBase64(filePath) {
- try {
- var file = new java.io.File(filePath);
- if (!file.exists()) {
- return null;
- }
-
- var fis = new java.io.FileInputStream(file);
- var buffer = java.lang.reflect.Array.newInstance(java.lang.Byte.TYPE, 1024);
- var bytesRead = 0;
- var byteBuffer = [];
-
- while ((bytesRead = fis.read(buffer)) != -1) {
- for (var i = 0; i < bytesRead; i++) {
- byteBuffer.push(buffer[i]);
- }
- }
-
- fis.close();
-
- var bytes = java.lang.reflect.Array.newInstance(java.lang.Byte.TYPE, byteBuffer.length);
- for (var i = 0; i < byteBuffer.length; i++) {
- bytes[i] = byteBuffer[i];
- }
-
- return android.util.Base64.encodeToString(bytes, android.util.Base64.NO_WRAP);
- } catch (e) {
- print.log("❌ ÎļþתBase64ʧ°Ü: " + e.message);
- return null;
- }
- }
- /**
- * JavaÔÉú·½·¨£º¼ì²éÎļþÊÇ·ñ´æÔÚ
- */
- function fileExists(filePath) {
- return new java.io.File(filePath).exists();
- }
- /**
- * JavaÔÉú·½·¨£º»ñÈ¡Îļþ´óС
- */
- function fileLength(filePath) {
- return new java.io.File(filePath).length();
- }
- /**
- * JavaÔÉú·½·¨£º»ñÈ¡ÎļþÃû
- */
- function getFileName(filePath) {
- return new java.io.File(filePath).getName();
- }
- /**
- * Á¬½ÓÊý¾Ý¿â
- */
- function connectDatabase() {
- try {
- var url = "jdbc:mysql://38.12.31.15:3306/dddfguu";
- var user = "dddfguu";
- var password = "rAXyhnNkiNsChJ8e";
- var params = "?useSSL=false&characterEncoding=utf8&connectTimeout=5000";
-
- print.log("ÕýÔÚÁ¬½ÓÊý¾Ý¿â...");
- conn = mysql.getConnection(url, user, password);
- print.log("✅ Êý¾Ý¿âÁ¬½Ó³É¹¦");
- return true;
- } catch (e) {
- print.log("❌ Êý¾Ý¿âÁ¬½Óʧ°Ü: " + e.message);
- return false;
- }
- }
- /**
- * ´´½¨Í¼Æ¬´æ´¢±í
- */
- function createImageTable() {
- try {
- var sql = "CREATE TABLE IF NOT EXISTS images (" +
- "id INT AUTO_INCREMENT PRIMARY KEY, " +
- "name VARCHAR(255) NOT NULL, " +
- "path VARCHAR(500), " +
- "image_data LONGBLOB, " +
- "file_size INT, " +
- "image_width INT, " +
- "image_height INT, " +
- "mime_type VARCHAR(50), " +
- "created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP" +
- ")";
-
- var stmt = conn.createStatement();
- stmt.execute(sql);
- stmt.close();
-
- print.log("✅ ͼƬ´æ´¢±í´´½¨³É¹¦£¨»òÒÑ´æÔÚ£©");
- return true;
- } catch (e) {
- print.log("❌ ´´½¨Í¼Æ¬±íʧ°Ü: " + e.message);
- return false;
- }
- }
- /**
- * ¼ì²é±íÊÇ·ñ´æÔÚ²¢ÏÔʾ±í½á¹¹
- */
- function checkTableStructure() {
- try {
- var sql = "SHOW TABLES LIKE 'images'";
- var stmt = conn.createStatement();
- var rs = stmt.executeQuery(sql);
-
- if (rs.next()) {
- print.log("✅ ±í images ÒÑ´æÔÚ");
- rs.close();
- stmt.close();
-
- // ÏÔʾ±í½á¹¹
- sql = "DESCRIBE images";
- stmt = conn.createStatement();
- rs = stmt.executeQuery(sql);
-
- print.log("±í images µÄ×ֶνṹ:");
- while (rs.next()) {
- var columnName = rs.getString(1);
- var columnType = rs.getString(2);
- print.log(" - " + columnName + ": " + columnType);
- }
- rs.close();
- stmt.close();
- return true;
- } else {
- print.log("❌ ±í images ²»´æÔÚ£¬ÐèÒªÏÈ´´½¨±í");
- rs.close();
- stmt.close();
- return false;
- }
- } catch (e) {
- print.log("❌ ¼ì²é±í½á¹¹Ê§°Ü: " + e.message);
- return false;
- }
- }
- /**
- * »ñȡͼƬÎļþÐÅÏ¢
- */
- function getImageInfo(imagePath) {
- try {
- if (!fileExists(imagePath)) {
- print.log("❌ ͼƬÎļþ²»´æÔÚ: " + imagePath);
- return null;
- }
-
- var fileSize = fileLength(imagePath);
- var fileName = getFileName(imagePath);
- var extension = fileName.substring(fileName.lastIndexOf('.') + 1).toLowerCase();
-
- var mimeType = "image/jpeg";
- if (extension === "png") {
- mimeType = "image/png";
- } else if (extension === "gif") {
- mimeType = "image/gif";
- } else if (extension === "webp") {
- mimeType = "image/webp";
- }
-
- print.log("ͼƬÎļþÐÅÏ¢:");
- print.log(" ·¾¶: " + imagePath);
- print.log(" ÎļþÃû: " + fileName);
- print.log(" Îļþ´óС: " + (fileSize / 1024).toFixed(2) + " KB");
- print.log(" MIMEÀàÐÍ: " + mimeType);
-
- return {
- path: imagePath,
- name: fileName,
- size: fileSize,
- mimeType: mimeType
- };
- } catch (e) {
- print.log("❌ »ñȡͼƬÐÅϢʧ°Ü: " + e.message);
- return null;
- }
- }
- /**
- * ½«±¾µØÍ¼Æ¬ÉÏ´«µ½Êý¾Ý¿â
- * @param {String} imagePath - ͼƬ±¾µØÂ·¾¶
- * @param {String} imageName - ͼƬÃû³Æ£¨¿ÉÑ¡£¬Ä¬ÈÏʹÓÃÎļþÃû£©
- */
- function uploadImageToDatabase(imagePath, imageName) {
- try {
- var imageInfo = getImageInfo(imagePath);
- if (!imageInfo) {
- return false;
- }
-
- var name = imageName || imageInfo.name;
-
- // ½«Í¼Æ¬Îļþת»»ÎªBase64×Ö·û´®
- print.log("ÕýÔÚ½«Í¼Æ¬×ª»»ÎªBase64×Ö·û´®...");
- var base64Data = fileToBase64(imagePath);
-
- if (!base64Data) {
- print.log("❌ ͼƬתBase64ʧ°Ü");
- return false;
- }
-
- print.log("✅ Base64×Ö·û´®Éú³É³É¹¦£¬³¤¶È: " + base64Data.length + " ×Ö·û");
-
- // ½«Base64×Ö·û´®×ª»»Îª×Ö½ÚÊý×é
- // ¸ñʽ: "data:image/jpeg;base64,..." ÐèҪȥ³ýǰ׺
- var base64Content = base64Data;
- var prefix = "data:" + imageInfo.mimeType + ";base64,";
- if (base64Data.indexOf(prefix) === 0) {
- base64Content = base64Data.substring(prefix.length);
- }
-
- // ʹÓÃÔ¤±àÒëÓï¾ä²åÈëͼƬÊý¾Ý
- var sql = "INSERT INTO images (name, path, image_data, file_size, mime_type) VALUES (?, ?, ?, ?, ?)";
- pstmt = conn.prepareStatement(sql);
- pstmt.setString(1, name);
- pstmt.setString(2, imagePath);
-
- // ÉèÖÃBLOB²ÎÊý - ʹÓÃsetBytes·½·¨
- var bytes = android.util.Base64.decode(base64Content, android.util.Base64.NO_WRAP);
- pstmt.setBytes(3, bytes);
-
- pstmt.setInt(4, imageInfo.size);
- pstmt.setString(5, imageInfo.mimeType);
-
- var rowsAffected = pstmt.executeUpdate();
- pstmt.close();
- pstmt = null;
-
- if (rowsAffected > 0) {
- print.log("✅ ͼƬ '" + name + "' ÉÏ´«³É¹¦£¬Ó°ÏìÐÐÊý: " + rowsAffected);
- return true;
- } else {
- print.log("❌ ͼƬÉÏ´«Ê§°Ü£¬Ó°ÏìÐÐÊýΪ0");
- return false;
- }
- } catch (e) {
- print.log("❌ ÉÏ´«Í¼Æ¬µ½Êý¾Ý¿âʧ°Ü: " + e.message);
- if (pstmt) {
- try { pstmt.close(); } catch(err) {}
- pstmt = null;
- }
- return false;
- }
- }
- /**
- * ´ÓÊý¾Ý¿âÏÂÔØÍ¼Æ¬²¢±£´æµ½±¾µØ
- * @param {Number} imageId - Êý¾Ý¿âÖеÄͼƬID
- * @param {String} outputPath - ±£´æÂ·¾¶
- */
- function downloadImageFromDatabase(imageId, outputPath) {
- try {
- var sql = "SELECT name, image_data, mime_type FROM images WHERE id = ?";
- pstmt = conn.prepareStatement(sql);
- pstmt.setInt(1, imageId);
-
- var rs = pstmt.executeQuery();
-
- if (rs.next()) {
- var name = rs.getString("name");
- var imageData = rs.getBytes("image_data");
- var mimeType = rs.getString("mime_type");
-
- // ½«×Ö½ÚÊý×éת»»ÎªBase64×Ö·û´®
- var base64Content = android.util.Base64.encodeToString(imageData, android.util.Base64.NO_WRAP);
-
- // Ìí¼ÓBase64ǰ׺
- var prefix = "data:" + mimeType + ";base64,";
- var base64WithPrefix = prefix + base64Content;
-
- // ʹÓà new image().readBase64() ºÍ save() ±£´æÎªÎļþ
- var imageObj = new image();
- imageObj.readBase64(base64WithPrefix);
- imageObj.save(outputPath);
-
- print.log("✅ ͼƬÏÂÔØ³É¹¦: " + outputPath);
- print.log(" ͼƬÃû³Æ: " + name);
- print.log(" MIMEÀàÐÍ: " + mimeType);
- print.log(" Îļþ´óС: " + (imageData.length / 1024).toFixed(2) + " KB");
-
- rs.close();
- pstmt.close();
- pstmt = null;
-
- return true;
- } else {
- print.log("❌ δÕÒµ½IDΪ " + imageId + " µÄͼƬ");
- rs.close();
- pstmt.close();
- pstmt = null;
- return false;
- }
- } catch (e) {
- print.log("❌ ´ÓÊý¾Ý¿âÏÂÔØÍ¼Æ¬Ê§°Ü: " + e.message);
- if (pstmt) {
- try { pstmt.close(); } catch(err) {}
- pstmt = null;
- }
- return false;
- }
- }
- /**
- * ²éѯÊý¾Ý¿âÖÐËùÓÐͼƬÐÅÏ¢
- */
- function queryAllImages() {
- try {
- var sql = "SELECT id, name, path, file_size, mime_type, created_at FROM images ORDER BY id";
- var stmt = conn.createStatement();
- var rs = stmt.executeQuery(sql);
-
- print.log("Êý¾Ý¿âÖеÄͼƬÁбí:");
- var count = 0;
-
- while (rs.next()) {
- count++;
- var id = rs.getInt("id");
- var name = rs.getString("name");
- var path = rs.getString("path");
- var fileSize = rs.getInt("file_size");
- var mimeType = rs.getString("mime_type");
- var createdAt = rs.getString("created_at");
-
- print.log(" [" + id + "] " + name);
- print.log(" ´óС: " + (fileSize / 1024).toFixed(2) + " KB");
- print.log(" ÀàÐÍ: " + mimeType);
- print.log(" ´´½¨Ê±¼ä: " + createdAt);
- }
-
- rs.close();
- stmt.close();
-
- if (count === 0) {
- print.log(" Êý¾Ý¿âÖÐûÓÐͼƬ¼Ç¼");
- } else {
- print.log(" ¹² " + count + " ÕÅͼƬ");
- }
-
- return true;
- } catch (e) {
- print.log("❌ ²éѯͼƬÁбíʧ°Ü: " + e.message);
- return false;
- }
- }
- /**
- * ¸ù¾ÝIDɾ³ýͼƬ
- */
- function deleteImageFromDatabase(imageId) {
- try {
- var sql = "DELETE FROM images WHERE id = ?";
- pstmt = conn.prepareStatement(sql);
- pstmt.setInt(1, imageId);
-
- var rowsAffected = pstmt.executeUpdate();
- pstmt.close();
- pstmt = null;
-
- if (rowsAffected > 0) {
- print.log("✅ ³É¹¦É¾³ýIDΪ " + imageId + " µÄͼƬ£¬Ó°ÏìÐÐÊý: " + rowsAffected);
- return true;
- } else {
- print.log("❌ δÕÒµ½IDΪ " + imageId + " µÄͼƬ");
- return false;
- }
- } catch (e) {
- print.log("❌ ɾ³ýͼƬʧ°Ü: " + e.message);
- if (pstmt) {
- try { pstmt.close(); } catch(err) {}
- pstmt = null;
- }
- return false;
- }
- }
- /**
- * ʵʱ½ØÍ¼²¢ÉÏ´«µ½Êý¾Ý¿â
- * @param {String} imageName - ͼƬÃû³Æ£¨¿ÉÑ¡£©
- * @returns {Boolean} ÊÇ·ñ³É¹¦
- */
- function screenshotAndUpload(imageName) {
- try {
- print.log("\n===== ʵʱ½ØÍ¼²¢ÉÏ´« =====");
-
- // 1. ½ØÍ¼
- print.log("ÕýÔÚ½ØÈ¡ÆÁÄ»...");
- var screenshot = screen.screenShotFull();
-
- if (!screenshot) {
- print.log("❌ ½ØÍ¼Ê§°Ü");
- return false;
- }
-
- print.log("✅ ½ØÍ¼³É¹¦");
-
- // 2. Éú³É±¾µØ±£´æÂ·¾¶
- var timestamp = new java.util.Date().getTime();
- var localPath = "/sdcard/screenshot_" + timestamp + ".jpg";
-
- // 3. ±£´æµ½±¾µØ
- print.log("ÕýÔÚ±£´æ½ØÍ¼µ½±¾µØ: " + localPath);
- screenshot.save(localPath);
-
- if (!fileExists(localPath)) {
- print.log("❌ ±¾µØ±£´æÊ§°Ü");
- return false;
- }
-
- print.log("✅ ±¾µØ±£´æ³É¹¦");
-
- // 4. ÉÏ´«µ½Êý¾Ý¿â
- var name = imageName || "½ØÍ¼_" + timestamp;
- print.log("ÕýÔÚÉÏ´«µ½Êý¾Ý¿â: " + name);
-
- var uploadResult = uploadImageToDatabase(localPath, name);
-
- if (uploadResult) {
- print.log("✅ ʵʱ½ØÍ¼ÉÏ´«³É¹¦£¡");
- return true;
- } else {
- print.log("❌ Êý¾Ý¿âÉÏ´«Ê§°Ü£¬µ«±¾µØÍ¼Æ¬Òѱ£´æ");
- return false;
- }
- } catch (e) {
- print.log("❌ ʵʱ½ØÍ¼ÉÏ´«Ê§°Ü: " + e.message);
- return false;
- }
- }
- /**
- * ¶¨Ê±½ØÍ¼²¢ÉÏ´«£¨Ñ»·Ö´ÐУ©
- * @param {Number} intervalSeconds - ¼ä¸ôÃëÊý
- * @param {Number} maxCount - ×î´óÖ´ÐдÎÊý£¨0±íʾÎÞÏÞÑ»·£©
- */
- function autoScreenshotUpload(intervalSeconds, maxCount) {
- try {
- print.log("\n===== Æô¶¯¶¨Ê±½ØÍ¼ÉÏ´« =====");
- print.log("¼ä¸ô: " + intervalSeconds + " Ãë");
- print.log("×î´ó´ÎÊý: " + (maxCount === 0 ? "ÎÞÏÞ" : maxCount));
-
- var count = 0;
-
- while (maxCount === 0 || count < maxCount) {
- count++;
- print.log("\n--- µÚ " + count + " ´Î½ØÍ¼ ---");
-
- var result = screenshotAndUpload("¶¨Ê±½ØÍ¼_" + count);
-
- if (result) {
- print.log("✅ µÚ " + count + " ´Î³É¹¦");
- } else {
- print.log("❌ µÚ " + count + " ´Îʧ°Ü");
- }
-
- // µÈ´ý¼ä¸ô£¨²»°üÀ¨×îºóÒ»´Î£©
- if (maxCount === 0 || count < maxCount) {
- print.log("µÈ´ý " + intervalSeconds + " Ãëºó½øÐÐÏÂÒ»´Î½ØÍ¼...");
- sleep(intervalSeconds * 1000);
- }
- }
-
- print.log("\n===== ¶¨Ê±½ØÍ¼ÈÎÎñÍê³É =====");
- print.log("¹²Ö´ÐÐ " + count + " ´Î½ØÍ¼ÉÏ´«");
- return true;
- } catch (e) {
- print.log("❌ ¶¨Ê±½ØÍ¼ÈÎÎñʧ°Ü: " + e.message);
- return false;
- }
- }
- /**
- * ½ØÍ¼²¢»ñÈ¡Base64Êý¾Ý£¨²»ÉÏ´«£¬ÓÃÓÚÔ¤ÀÀµÈ£©
- * @returns {String} Base64×Ö·û´®£¬Ê§°Ü·µ»Ønull
- */
- function screenshotToBase64() {
- try {
- print.log("\n===== ½ØÍ¼²¢»ñÈ¡Base64 =====");
-
- // 1. ½ØÍ¼
- var screenshot = screen.screenShotFull();
- if (!screenshot) {
- print.log("❌ ½ØÍ¼Ê§°Ü");
- return null;
- }
-
- // 2. תΪBase64
- var base64Data = screenshot.toBase64();
-
- if (base64Data) {
- print.log("✅ Base64Êý¾Ý»ñÈ¡³É¹¦£¬³¤¶È: " + base64Data.length + " ×Ö·û");
- print.log(" ǰ׺: " + base64Data.substring(0, 50) + "...");
- return base64Data;
- } else {
- print.log("❌ Base64ת»»Ê§°Ü");
- return null;
- }
- } catch (e) {
- print.log("❌ ½ØÍ¼×ªBase64ʧ°Ü: " + e.message);
- return null;
- }
- }
- /**
- * ¹Ø±ÕÊý¾Ý¿âÁ¬½Ó
- */
- function closeConnection() {
- try {
- if (pstmt != null) {
- pstmt.close();
- pstmt = null;
- }
- if (conn != null) {
- conn.close();
- }
- print.log("✅ Êý¾Ý¿âÁ¬½ÓÒѹرÕ");
- } catch (e) {
- print.log("❌ ¹Ø±ÕÁ¬½Óʱ³ö´í: " + e.message);
- }
- }
- // Ö÷³ÌÐòÖ´ÐÐÁ÷³Ì
- try {
- // 1. Á¬½ÓÊý¾Ý¿â
- if (!connectDatabase()) {
- throw new Error("Êý¾Ý¿âÁ¬½Óʧ°Ü");
- }
-
- // 2. ¼ì²é±íÊÇ·ñ´æÔÚ£¬²»´æÔÚÔò´´½¨
- if (!checkTableStructure()) {
- print.log("ÕýÔÚ´´½¨Í¼Æ¬´æ´¢±í...");
- if (!createImageTable()) {
- throw new Error("´´½¨Í¼Æ¬±íʧ°Ü");
- }
- }
-
- // ========== ·½Ê½1£ºÉÏ´«±¾µØÒÑÓÐͼƬ ==========
- print.log("\n===== ·½Ê½1£ºÉÏ´«±¾µØÍ¼Æ¬ =====");
-
- // ³£¼ûµÄÊÖ»úͼƬ·¾¶Ê¾Àý
- var sampleImagePaths = [
- "/sdcard/DCIM/Camera/photo_001.jpg",
- "/sdcard/Pictures/Screenshots/screenshot_001.png",
- "/sdcard/Download/image_001.jpg"
- ];
-
- // ʹÓõÚÒ»¸ö´æÔÚµÄͼƬ·¾¶
- var uploadPath = null;
- for (var i = 0; i < sampleImagePaths.length; i++) {
- var testPath = sampleImagePaths[i];
- if (new java.io.File(testPath).exists()) {
- uploadPath = testPath;
- print.log("ÕÒµ½¿ÉÓõIJâÊÔͼƬ: " + uploadPath);
- break;
- }
- }
-
- if (uploadPath) {
- // ÉÏ´«ÕÒµ½µÄͼƬ
- uploadImageToDatabase(uploadPath, "±¾µØ²âÊÔͼƬ_" + new java.util.Date().getTime());
- } else {
- print.log("⚠️ δÕÒµ½²âÊÔͼƬ£¬ÇëÈ·±£ÒÔÏ·¾¶ÓÐͼƬÎļþ:");
- for (var j = 0; j < sampleImagePaths.length; j++) {
- print.log(" - " + sampleImagePaths[j]);
- }
- }
-
- // ========== ·½Ê½2£ºÊµÊ±½ØÍ¼²¢ÉÏ´« ==========
- print.log("\n===== ·½Ê½2£ºÊµÊ±½ØÍ¼²¢ÉÏ´« =====");
-
- // Á¢¼´½ØÍ¼²¢ÉÏ´«
- var screenshotResult = screenshotAndUpload("ʵʱ½ØÍ¼²âÊÔ");
-
- // ========== ·½Ê½3£º¶¨Ê±½ØÍ¼ÉÏ´«£¨¿ÉÑ¡£© ==========
- // Èç¹ûÐèÒª¶¨Ê±½ØÍ¼£¬ÇëÈ¡Ïû×¢ÊÍÒÔÏ´úÂ룺
- // autoScreenshotUpload(5, 3); // ÿ5Ãë½ØÍ¼Ò»´Î£¬¹²3´Î
-
- // 4. ²éѯËùÓÐͼƬ
- print.log("\n===== ²éѯÊý¾Ý¿âÖеÄͼƬ =====");
- queryAllImages();
-
- // 5. ÏÂÔØ×îÐÂͼƬ
- print.log("\n===== ´ÓÊý¾Ý¿âÏÂÔØ×îÐÂͼƬ =====");
- // ²éÕÒ×îеÄͼƬID
- var latestImageId = 0;
- try {
- var sql = "SELECT MAX(id) as max_id FROM images";
- var stmt = conn.createStatement();
- var rs = stmt.executeQuery(sql);
- if (rs.next()) {
- latestImageId = rs.getInt("max_id");
- }
- rs.close();
- stmt.close();
-
- if (latestImageId > 0) {
- var downloadPath = "/sdcard/downloaded_image_" + latestImageId + ".jpg";
- downloadImageFromDatabase(latestImageId, downloadPath);
-
- // 6. ½ØÍ¼×ªBase64ÑÝʾ
- print.log("\n===== ½ØÍ¼×ªBase64ÑÝʾ =====");
- var base64Data = screenshotToBase64();
- if (base64Data) {
- print.log("✅ Base64¿ÉÓÃÓÚH5½çÃæÏÔʾ¡¢ÍøÂç´«ÊäµÈ");
- }
-
- // 7. ɾ³ýͼƬÑÝʾ£¨È¡Ïû×¢ÊÍ¿Éɾ³ý£©
- // print.log("\n===== ɾ³ýͼƬÑÝʾ =====");
- // deleteImageFromDatabase(latestImageId);
- // print.log("ÒÑɾ³ýIDΪ " + latestImageId + " µÄͼƬ");
- }
- } catch (e) {
- print.log("⚠️ ÑÝʾÏÂÔØ¹¦ÄÜʱ³ö´í: " + e.message);
- }
-
- // 8. ÔٴβéѯȷÈÏ
- print.log("\n===== ×îÖÕͼƬÁбí =====");
- queryAllImages();
-
- } catch (e) {
- print.log("❌ ³ÌÐòÖ´Ðйý³ÌÖз¢Éú´íÎó: " + e.message);
- } finally {
- // È·±£Á¬½Ó±»¹Ø±Õ
- closeConnection();
- }
- print.log("===== Êý¾Ý¿âͼƬÉÏ´«²Ù×÷½Å±¾½áÊø =====");
- /**
- * 💡 ʹÓÃ˵Ã÷£º
- *
- * 1. ͼƬ´æ´¢ÔÀí£º
- * - ʹÓà MySQL µÄ LONGBLOB ÀàÐÍ´æ´¢¶þ½øÖÆÍ¼Æ¬Êý¾Ý
- * - ½«Í¼Æ¬ÎļþתΪ Base64 ×Ö·û´®£¬ÔÙתΪ×Ö½ÚÊý×é´æÈëÊý¾Ý¿â
- *
- * 2. ÉÏ´«Á÷³Ì£º
- * - file.fileToBase64(path) ¡ú »ñȡͼƬBase64×Ö·û´®
- * - android.util.Base64.decode() ¡ú Base64ת×Ö½ÚÊý×é
- * - prepareStatement.setBytes() ¡ú ´æÈëÊý¾Ý¿â
- *
- * 3. ÏÂÔØÁ÷³Ì£º
- * - rs.getBytes() ¡ú ´ÓÊý¾Ý¿â¶ÁÈ¡×Ö½ÚÊý×é
- * - android.util.Base64.encodeToString() ¡ú ×Ö½ÚÊý×éתBase64
- * - file.base64ToFile() ¡ú ±£´æÎªÍ¼Æ¬Îļþ
- *
- * 4. ÊÊÓó¡¾°£º
- * - Óû§Í·Ïñ´æ´¢
- * - ÉÌÆ·Í¼Æ¬¹ÜÀí
- * - ½ØÍ¼×Ô¶¯±¸·Ý
- * - ͼƬÊý¾ÝÇ¨ÒÆ
- */
¸´ÖÆ´úÂë
|
|