java - 如何使用 java 在 mongoDB 中插入图像?

标签 java image mongodb persistence binary-data

我想在 MongoDB 中存储图像文档。我正在使用 java。

任何链接或建议将不胜感激。

最佳答案

为了存储像图像这样的二进制数据,您可以使用 GridFS或实现您自己的实现;下载driver并查看 src/test/com/mongodb/gridfs/GridFSTest.java ;)

编辑:你今天很幸运!我为你制作了完整的代码;)享受吧!

package mongodb.testing.java;
import com.mongodb.*;
import com.mongodb.gridfs.*;
import java.io.*;

public class Main {

    public static byte[] LoadImage(String filePath) throws Exception {
        File file = new File(filePath);
        int size = (int)file.length();
        byte[] buffer = new byte[size];
        FileInputStream in = new FileInputStream(file);
        in.read(buffer);
        in.close();
        return buffer;
    }

    public static void main(String[] args) throws Exception {
        //Load our image
        byte[] imageBytes = LoadImage("C:/Temp/bear.bmp");
        //Connect to database
        Mongo mongo = new Mongo( "127.0.0.1" );
        String dbName = "GridFSTestJava";
        DB db = mongo.getDB( dbName );
        //Create GridFS object
        GridFS fs = new GridFS( db );
        //Save image into database
        GridFSInputFile in = fs.createFile( imageBytes );
        in.save();

        //Find saved image
        GridFSDBFile out = fs.findOne( new BasicDBObject( "_id" , in.getId() ) );

        //Save loaded image from database into new image file
        FileOutputStream outputImage = new FileOutputStream("C:/Temp/bearCopy.bmp");
        out.writeTo( outputImage );
        outputImage.close();
    }
}

关于java - 如何使用 java 在 mongoDB 中插入图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4245787/

相关文章:

java - 从列表中删除具有空属性的对象的最有效方法

mongodb - 复制集合并将其粘贴到 MongoDB 上具有不同名称的同一数据库

mongodb - 如何从 map-reduce 集合中获取 _id 元素

java - 运行 SwingSet2 演示

java - maven项目无法启动tomcat

java - 如何从 python 脚本设置系统属性以在 Java 代码中使用它?

html - Amazon S3 在浏览器中翻转肖像图像?

javascript - 如何使用 JQuery 的链接值从下拉列表中显示图像

android - 当我将图像放入可绘制文件夹时,为什么 BitmapFactory.decodeResource() 会变慢?

java - 在 java 中为 mongodb 创建地理空间查询