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

如何使用java在mongoDB中插入图像?,java,image,mongodb,persistence,binary-data,Java,Image,Mongodb,Persistence,Binary Data,我想在MongoDB中存储图像文档。我正在使用java 如果您有任何链接或建议,我们将不胜感激。好吧,抱歉,您不能在mongodb中存储图像,您可以存储图像的链接。我说的不是很高,如果图像很小,比如100x100px,你可以试着用二进制存储图像,然后动态地修改图像。但是,渲染图像需要一些时间,因此我建议您保存链接,只需获取该图像并动态填充它 您可以使用GridFS存储较大的二进制对象 由于您是mongoDB的新手,请查看: 您也可以随时询问,因此,我也是mongoDB的新手,我不介意帮助

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

如果您有任何链接或建议,我们将不胜感激。

好吧,抱歉,您不能在mongodb中存储图像,您可以存储图像的链接。我说的不是很高,如果图像很小,比如100x100px,你可以试着用二进制存储图像,然后动态地修改图像。但是,渲染图像需要一些时间,因此我建议您保存链接,只需获取该图像并动态填充它

您可以使用GridFS存储较大的二进制对象

由于您是mongoDB的新手,请查看:


您也可以随时询问,因此,我也是mongoDB的新手,我不介意帮助新手:D

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

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

包mongodb.testing.java;
导入com.mongodb.*;
导入com.mongodb.gridfs.*;
导入java.io.*;
公共班机{
公共静态字节[]LoadImage(字符串文件路径)引发异常{
文件文件=新文件(文件路径);
int size=(int)file.length();
字节[]缓冲区=新字节[大小];
FileInputStream in=新的FileInputStream(文件);
in.read(缓冲区);
in.close();
返回缓冲区;
}
公共静态void main(字符串[]args)引发异常{
//加载我们的图像
byte[]imageBytes=LoadImage(“C:/Temp/bear.bmp”);
//连接到数据库
Mongo Mongo=新Mongo(“127.0.0.1”);
字符串dbName=“GridFSTestJava”;
DB=mongo.getDB(dbName);
//创建GridFS对象
GridFS=新的GridFS(db);
//将图像保存到数据库中
GridFSInputFile in=fs.createFile(imageBytes);
in.save();
//查找保存的图像
GridFSDBFile out=fs.findOne(新的BasicDBbObject(“_id”,in.getId());
//将从数据库加载的图像保存到新图像文件中
FileOutputStream outputImage=新的FileOutputStream(“C:/Temp/bearCopy.bmp”);
out.writeTo(输出图像);
outputImage.close();
}
}

对于small(谢谢你的代码。我也为同样的过程编写了一个代码。但是你的代码比我的简单!!!因此,要写入html文件,你会将服务器上的图片位置输出到html吗?非常感谢你,尤其是“LoadImage”方法。谢谢你:)非常有用这对小于int大小的文件有效。如果大于这个值,则需要使用块并保存在Part中。我将在mongo中存储大量图像。缩略图和普通尺寸。pojo对我来说是必不可少的吗??!!!你能告诉我你是如何在mongo中表现图像的吗。比如,{“x”:1,“y”:2}你如何表示图像???你如何存储图像?一个文件?还是一个集合中的单独文档?或者说,如果我想在一个看起来像
{“name”:“Tamil”,“age”:23,“Images”{“image1”:123.jpg,“image2”:abc.jpg}}的文档中存储多个图像
我应该如何使用Java来实现如何将GridFS文件与mongodb中的普通文档链接。比如说,我上传了一个大图像,并将其存储在GridFS中。我将文件的其他详细信息保存在任何集合中的文档中。当我从集合中读取文档时,如何检索关联的图像???我不知道是否有任何API方法可以执行此操作,您可以通过在两个集合中创建具有相同值的字段来创建它们之间的链接。因此,当您在第一个集合中遇到值时,您将使用该值查询images集合,并遇到相应的图像。