Desidero memorizzare i documenti immagine in mongoDB.
Sto usando java.Come inserire le immagini in mongoDB usando java?
Eventuali link o suggerimenti sarebbero apprezzati.
Desidero memorizzare i documenti immagine in mongoDB.
Sto usando java.Come inserire le immagini in mongoDB usando java?
Eventuali link o suggerimenti sarebbero apprezzati.
Per la memorizzazione di dati binari come le immagini è possibile utilizzare GridFS o implementare la propria realizzazione; Scarica ile guarda src/test/com/mongodb/gridfs/GridFSTest.java
;)
Modifica: sei fortunato oggi! Ho creato un codice completo per te;) Divertiti!
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();
}
}
Bene, AFAIK, non è possibile memorizzare le immagini in mongodb
, è possibile memorizzare i collegamenti alle immagini. E non sono alto come dico questo, se le immagini sono piccole, come 100x100 px, U può provare a memorizzare l'immagine in binario, e riformare e immagini al volo. Ma ci vorrà un po 'di tempo per eseguire il rendering delle immagini, quindi ti suggerisco di salvare il link, e solo di recuperare quell'immagine e popolarla in modo dinamico.
È possibile utilizzare GridFS per memorizzare oggetti binari di grandi dimensioni.
Dal momento che sei un nuovo MongoDB, dare un'occhiata a:
Si può anche chiedere sempre su SO, io sono anche nuovo a mongoDB, e non mi dispiacerebbe aiutare un principiante lungo: D
Come si collega il file GridFS con un documento normale in mongodb. Dì, sto caricando una grande immagine e la immagazzino in GridFS. Salvare gli altri dettagli del file in un documento in qualsiasi raccolta. Come posso recuperare l'immagine associata, quando leggo il documento dalla raccolta ??? –
Non so se esiste un metodo API per farlo, si crea un collegamento tra di loro, creando un campo in entrambe le raccolte, con gli stessi valori. Quindi quando trovi il valore nella prima raccolta, esegui una query sulla raccolta di immagini con il valore e trovi l'immagine corrispondente. – theTuxRacer
Per le piccole (< 1MB) immagini Io suggerirei memorizzandoli in un campo binario (byte [] in java); se hai file più grandi GridFS funzionerà meglio.
posso conservare un sacco di miniature nei miei documenti direttamente utilizzando un semplice campo binario.
Io uso Morphia (http://code.google.com/p/morphia) per memorizzare i miei POJO.
Ho intenzione di memorizzare molte immagini in Mongo. Entrambe le miniature e le dimensioni ordinarie. Pojo è essenziale per me ?? !!! –
Puoi dirmi come rappresenti le immagini in mongo. come, {"x": 1, "y": 2} come rappresenti le immagini ???? –
Come memorizzi le tue immagini? Tutto in un unico documento? o documenti separati in una collezione?o Dire se voglio memorizzare più immagini in un documento che assomiglia a '{" nome ":" Tamil "," età ": 23," Immagini "{" immagine1 ": 123.jpg," immagine2 ": abc.jpg }} 'Come devo farlo con java –
grazie per il tuo codice. Ho anche creato un codice per lo stesso processo. Ma il tuo è semplice del mio !!! –
Quindi, per scrivere su un file html, si invierà la posizione dell'immagine sul server all'HTML? – Jeff
Grazie mille, soprattutto per il metodo "LoadImage". –