Я хочу знать конкретно о сохранении объекта с изображением внутри него. Что я хочу сделать, так это сохранить весь объект с изображением внутри него, изображение должно быть сохранено. Я пробовал это, но он сохраняет только экземпляр файла с путем к файлу. Это не сохранение изображения. Любая помощь будет оценена по достоинству. Спасибо. Вот мой код для сохранения объекта, но он сохраняет экземпляр файла вместо изображения.
import java.io.File;
import org.springframework.data.mongodb.core.mapping.Document;
import com.discusit.model.Artwork;
@Document(collection="Artwork")
public class ArtworkImpl implements Artwork {
private String artworkName;
private String artworkVersion;
private String fileName;
private File file;
public ArtworkImpl() {
}
public ArtworkImpl(String name, String version, String fileName, File file) {
this.artworkName = name;
this.artworkVersion = version;
this.fileName = fileName;
this.file = file;
}
public String getArtworkName() {
return artworkName;
}
public void setArtworkName(String artworkName) {
this.artworkName = artworkName;
}
public String getArtworkVersion() {
return artworkVersion;
}
public void setArtworkVersion(String artworkVersion) {
this.artworkVersion = artworkVersion;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
}
Вот мой основной метод: - ПРИМЕЧАНИЕ. Основной метод работает нормально, но не сохраняет изображение, а сохраняет экземпляр файла.
public class MainApplication {
public static void main(String[] args) {
ApplicationContext ctx =
new AnnotationConfigApplicationContext(SpringMongoConfig.class);
GridFsOperations gridOperations =
(GridFsOperations) ctx.getBean("gridFsTemplate");
DBObject metaData = new BasicDBObject();
metaData.put("extra1", "anything 1");
metaData.put("extra2", "anything 2");
InputStream inputStream = null;
try {
inputStream = new FileInputStream("/home/discusit/Downloads/birds.jpg");
gridOperations.store(inputStream, "birds.jpg", "image/jpg", metaData);
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
System.out.println("Done");
}
}
Я хочу сохранить объект с изображением.
ОБНОВЛЕНИЕ: я сделал это, но преобразовал изображение в массив байтов, извлек массив байтов и преобразовал обратно в изображение, просто хочу знать, есть ли другой способ сохранить изображение непосредственно в mongoDB, но без преобразования его в массив байтов? ???