蒙戈与MATLAB GridFS Java驱动程序

19日视图(30天)
Marc Youcef
Marc Youcef 2019年6月6日
评论道: Marc Youcef 2019年6月19日
我试图上传和下载图片从MATLAB MongoDB使用Mongo Java驱动程序。
我在下面GridFS java教程:
在MATLAB我:
javaaddpath (用户“C: \ \ * * * * \ \ jar_files \ mongo-java-driver-3.11.0-beta3.jar文件”)
进口com.mongodb.Block;
进口com.mongodb.client.MongoClients;
进口com.mongodb.client.MongoClient;
进口com.mongodb.client.MongoDatabase;
进口com.mongodb.client.gridfs。*;
进口com.mongodb.client.gridfs.model。*;
进口org.bson.Document;
进口org.bson.types.ObjectId;
进口. io . *;
进口java.nio.file.Files;
进口java.nio.charset.StandardCharsets;
进口com.mongodb.client.model.Filters.eq;
mongoClient = MongoClients.create ();
myDatabase = mongoClient.getDatabase (“TestData”);
gridFSFilesBucket = GridFSBuckets.create (myDatabase,“PicturesTest”);
streamToUploadFrom = FileInputStream(文件(用户“C: \ \ * * * * \ \ MyPicture.png照片”));
直到这一点,但我不能做以下工作:
文件标识= gridFSBucket.uploadFromStream (“mongodb-tutorial”streamToUploadFrom)
我得到这错误消息;
未定义的变量“gridFSBucket”或类“gridFSBucket.uploadFromStream”。
我不明白为什么它不能找到gridFSBucket函数在java驱动程序。
我想玩jar文件成功了一次,但不工作了(不知道我所做的正是)…
感谢任何帮助。
谢谢。

接受的答案

Debasish Samal
Debasish Samal 2019年6月7日
发生错误,因为没有这样的对象“gridFSBucket”。
您需要创建一个对象“gridFSBucket”类型的 GridFSBucket。向代码中添加这一行:
gridFSBucket = GridFSBuckets.create (myDatabase);
然后添加:
文件标识= gridFSBucket.uploadFromStream (“mongodb-tutorial”,streamToUploadFrom);
1评论
Marc Youcef
Marc Youcef 2019年6月7日
完美的解决了这个问题其实我严重重新编码中所示的java代码教程网页到MATLAB。
我要添加脚本的余数为人们感兴趣的有完整的上传/下载MongoDB的代码。再次感谢你的帮助。

登录置评。

答案(1)

Marc Youcef
Marc Youcef 2019年6月7日
编辑:Marc Youcef 2019年6月7日
请查收下面的一个例子如何上传/下载一幅从MATLAB到MongoDB:
javaaddpath (“C: \用户文档\ * * * \ \ jar_files \ mongo-java-driver-3.11.0-beta3.jar”)
进口com.mongodb.Block;
进口com.mongodb.client.MongoClients;
进口com.mongodb.client.MongoClient;
进口com.mongodb.client.MongoDatabase;
进口com.mongodb.client.gridfs。*;
进口com.mongodb.client.gridfs.model。*;
进口org.bson.Document;
进口org.bson.types.ObjectId;
进口. io . *;
进口java.nio.file.Files;
进口java.nio.charset.StandardCharsets;
进口com.mongodb.client.model.Filters.eq;
%连接
mongoClient = MongoClients.create ();
myDatabase = mongoClient.getDatabase (“TestDb”);
%上传照片
gridFSFilesBucket = GridFSBuckets.create (myDatabase,“PicturesTest”);
streamToUploadFrom = FileInputStream(文件(“C: \ \用户* * * \ \ Mypicture.png照片”));
文件标识= gridFSFilesBucket.uploadFromStream (“mongodb-tutorial”streamToUploadFrom)
%下载图片
streamToDownloadTo = FileOutputStream (“C: \ \用户* * * \ \ Mypicture.png照片”);
gridFSFilesBucket。downloadToStream(文件标识,streamToDownloadTo);
streamToDownloadTo.close ();
downloadStream = gridFSFilesBucket.openDownloadStream(文件标识);
%创建复印机类
isc = com.mathworks.mlwidgets.io.InterruptibleStreamCopier.getInterruptibleStreamCopier;
%创建一个缓冲区复制到其中
outputStream = java.io.ByteArrayOutputStream;
%从您下载流复制到该缓冲区
isc.copyStream (downloadStream outputStream);
%关闭缓冲区
outputStream.close
%的数据从缓冲区数组int8 MATLAB
binaryData = outputStream.toByteArray;
进口java.io.ByteArrayInputStream;
进口javax.imageio.ImageIO;
姨= ByteArrayInputStream (outputStream.toByteArray ());
jbi = ImageIO.read(姨);
nrows = jbi.getHeight;ncols = jbi.getWidth;
data =重塑(定型(jbi.getData.getDataStorage,“uint8”),[],ncols nrows);
matImg =排列(数据,[3 2 1]);
%是RGB顺序
matImg2 = matImg (:: 3);
matImg2 (:: 2) = matImg (:,:, 2);
matImg2 (:: 3) = matImg (:,: 1);
%显示图象
显示亮度图像(matImg2);
2的评论
Marc Youcef
Marc Youcef 2019年6月19日
非常感谢卡坦,这让工作更快!

登录置评。

类别

找到更多的在Java包集成帮助中心文件交换

下载188bet金宝搏


释放

R2019a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!