add Attachment.mimeType,metadata
This commit is contained in:
+11
@@ -3,6 +3,7 @@ package com.imyeyu.api.modules.common.service.implement;
|
||||
import com.google.gson.Gson;
|
||||
import com.imyeyu.api.config.dbsource.TimiServerDBConfig;
|
||||
import com.imyeyu.api.modules.common.bean.MediaAttach;
|
||||
import com.imyeyu.api.modules.common.bean.Metadata;
|
||||
import com.imyeyu.api.modules.common.entity.Attachment;
|
||||
import com.imyeyu.api.modules.common.mapper.AttachmentMapper;
|
||||
import com.imyeyu.api.modules.common.service.AttachmentService;
|
||||
@@ -31,6 +32,8 @@ import org.springframework.data.mongodb.gridfs.GridFsTemplate;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
@@ -101,6 +104,14 @@ public class AttachmentServiceImplement extends AbstractEntityService<Attachment
|
||||
request.setMongoId(mongoId);
|
||||
request.setSize(gridFSFile.getLength());
|
||||
request.setMd5(IO.md5(gridFSBucket.openDownloadStream(gridFSFile.getObjectId())));
|
||||
request.setMimeType(new Tika().detect(gridFSBucket.openDownloadStream(gridFSFile.getObjectId())));
|
||||
if (request.getMimeType().startsWith("image")) {
|
||||
BufferedImage image = ImageIO.read(gridFSBucket.openDownloadStream(gridFSFile.getObjectId()));
|
||||
Metadata.Image metadata = new Metadata.Image();
|
||||
metadata.setWidth(image.getWidth());
|
||||
metadata.setHeight(image.getHeight());
|
||||
request.setMetadata(gson.toJsonTree(metadata).getAsJsonObject());
|
||||
}
|
||||
mapper.insert(request);
|
||||
} catch (Exception e) {
|
||||
if (mongoId != null) {
|
||||
|
||||
Reference in New Issue
Block a user