Friday, June 12, 2015

Inserting and Retrieving images in MongoDB without GridFs Library

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.UnknownHostException;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException;

public class SaveImageApp {
public static void main(String[] args)
{
SaveImageApp o = new SaveImageApp();
o.withoutUsingGridFS();
}
public  void withoutUsingGridFS()
{
try {
Mongo mongo = new Mongo("localhost", 27017);
DB db = mongo.getDB("imagedb");
DBCollection collection = db.getCollection("dummyColl");

String filename = "C:/TEOProjectWorkspace/Mongodb/hoopertext.png";
String empname ="hooper";
insert(empname,filename,collection);
String destfilename = "C:/TEOProjectWorkspace/Mongodb/hoopertext.png";
retrieve(empname, destfilename, collection);

} catch (UnknownHostException e) {
e.printStackTrace();
} catch (MongoException e) {
e.printStackTrace();
}
}

public   void insert(String empname, String filename, DBCollection collection)
{
try
{
File imageFile = new File(filename);
FileInputStream f = new FileInputStream(imageFile);
byte b[] = new byte[f.available()];
f.read(b);

//    Binary data = new Binary(b);
BasicDBObject o = new BasicDBObject();
o.append("name",empname).append("photo",b);
collection.insert(o);
System.out.println("Inserted record.");
f.close();

} catch (IOException e) {
e.printStackTrace();
}
}
void retrieve(String name, String filename, DBCollection collection)
{
byte c[];
try
{
DBObject obj = collection.findOne(new BasicDBObject("name", name));
String n = (String)obj.get("name");
c = (byte[])obj.get("photo");
FileOutputStream fout = new FileOutputStream(filename);
fout.write(c);
fout.flush();
System.out.println("Photo of "+name+" retrieved and stored at "+filename);
fout.close();
}
catch (IOException e) {
e.printStackTrace();
}
}
}

No comments:

Post a Comment