Chcę przechowywać dokumenty obrazu w MongoDB.
Używam java.Jak wstawiać obrazy w MongoDB za pomocą Java?
Wszelkie linki lub sugestie będą mile widziane.
Chcę przechowywać dokumenty obrazu w MongoDB.
Używam java.Jak wstawiać obrazy w MongoDB za pomocą Java?
Wszelkie linki lub sugestie będą mile widziane.
Do przechowywania danych binarnych, takich jak obrazy, można użyć GridFS lub zrealizować własną realizację; Pobierz driver i spójrz na src/test/com/mongodb/gridfs/GridFSTest.java
;)
Edytuj: masz szczęście już dziś! Zrobiłem dla ciebie kompletny kod;) Ciesz się!
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();
}
}
Cóż, AFAIK, nie możesz przechowywać obrazów w mongodb
, możesz przechowywać linki do zdjęć. I nie jestem wysoki, jak to mówię, jeśli obrazy są małe, takie jak 100x100 px, U można spróbować zapisać obraz w formacie binarnym, a reformy i obraz w locie. Jednak renderowanie obrazów zajmie trochę czasu, dlatego sugeruję, aby zapisać link, a następnie po prostu pobrać ten obraz i wypełnić go dynamicznie.
Możesz użyć GridFS do przechowywania większych obiektów binarnych.
Ponieważ jesteś nowy MongoDB, przyjrzeć:
Można też zawsze poprosić o tak, jestem również nowy w mongoDB i nie miałby nic przeciwko pomaganiu nowicjuszowi: D
Jak połączyć plik GridFS z zwykłym dokumentem w mongodb. Powiedz, że przesyłam duży obraz i zapisuję go w GridFS. Zachowuję inne szczegóły pliku w dokumencie w dowolnej kolekcji. Jak mogę pobrać skojarzony obraz, kiedy czytam dokument z kolekcji ??? –
Nie wiem, czy istnieje jakaś metoda API, aby to zrobić, możesz utworzyć połączenie między nimi, tworząc pole w obu kolekcjach o tych samych wartościach. Więc kiedy natkniesz się na wartość z pierwszej kolekcji, możesz zapytać zbiór obrazów o wartość i znaleźć odpowiedni obraz. – theTuxRacer
Dla małych (< 1MB) zdjęć sugeruję przechowując je w polu binarnym (byte [] w java); jeśli masz większe pliki GridFS będzie działać lepiej.
Przechowuję wiele miniatur w moich dokumentach bezpośrednio przy użyciu prostego pola binarnego.
Używam Morphia (http://code.google.com/p/morphia) do przechowywania moich POJO.
Mam zamiar przechowywać wiele zdjęć w Mongo. Obie miniatury i zwykły rozmiar. Czy pojo jest dla mnie niezbędne? !!! –
Czy możesz mi powiedzieć, w jaki sposób reprezentujesz obrazy w Mongo. jak, {"x": 1, "y": 2} jak reprezentujesz obrazy ??? –
Jak przechowujesz swoje zdjęcia? Wszystko w jednym dokumencie? lub osobne dokumenty w jednej kolekcji?lub Powiedz, czy chcę zapisać wiele obrazów w dokumencie, który wygląda jak '{" nazwa ":" Tamil "," wiek ": 23," Obrazy "{" obrazek1 ": 123.jpg," obraz2 ": abc.jpg }} 'jak mam to zrobić z Javą –
dzięki za twój kod. Zrobiłem również kod dla tego samego procesu. Ale twój jest prosty niż mój !!! –
Tak więc, aby napisać do pliku html, czy wypiszesz położenie obrazu na serwerze do kodu HTML? – Jeff
Dziękuję bardzo, szczególnie za metodę "LoadImage". –