|
@ -1,31 +1,23 @@
|
|
|
package com.yihu.hos.web.framework.util;
|
|
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
import com.mongodb.BasicDBObject;
|
|
|
import com.mongodb.client.FindIterable;
|
|
|
import com.mongodb.client.MongoCursor;
|
|
|
import com.mongodb.client.MongoDatabase;
|
|
|
import com.mongodb.client.gridfs.GridFSBucket;
|
|
|
import com.mongodb.client.gridfs.GridFSBuckets;
|
|
|
import com.mongodb.client.gridfs.GridFSFindIterable;
|
|
|
import com.mongodb.client.gridfs.GridFSUploadStream;
|
|
|
import com.mongodb.client.gridfs.model.GridFSFile;
|
|
|
import com.mongodb.client.gridfs.model.GridFSUploadOptions;
|
|
|
import com.mongodb.client.model.Filters;
|
|
|
import com.yihu.ehr.dbhelper.mongodb.MongodbFactory;
|
|
|
import com.yihu.ehr.dbhelper.mongodb.MongodbHelper;
|
|
|
import com.mongodb.gridfs.GridFSDBFile;
|
|
|
import com.yihu.hos.core.file.FileUtil;
|
|
|
import eu.medsea.mimeutil.MimeUtil;
|
|
|
import org.bson.Document;
|
|
|
import org.bson.conversions.Bson;
|
|
|
import org.bson.types.ObjectId;
|
|
|
import org.json.JSONObject;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.data.mongodb.core.query.Query;
|
|
|
import org.springframework.data.mongodb.gridfs.GridFsCriteria;
|
|
|
import org.springframework.data.mongodb.gridfs.GridFsOperations;
|
|
|
import org.springframework.web.multipart.commons.CommonsMultipartFile;
|
|
|
|
|
|
import java.io.ByteArrayOutputStream;
|
|
|
import java.io.File;
|
|
|
import java.io.IOException;
|
|
|
import java.io.OutputStream;
|
|
|
import java.io.*;
|
|
|
import java.sql.Blob;
|
|
|
import java.util.*;
|
|
|
|
|
@ -40,14 +32,11 @@ public class GridFSUtil {
|
|
|
|
|
|
public static final int defaultChunkSize = 1024 * 1024 * 4;
|
|
|
|
|
|
@Autowired
|
|
|
private static GridFsOperations gridFsOperations;
|
|
|
|
|
|
public static ObjectId uploadFile(String dbName, Blob blob, String fileType, Map<String, Object> params) {
|
|
|
//获取mongodb连接
|
|
|
// MongodbHelper mongoOrigin = new MongodbHelper(dbName);
|
|
|
//创建一个容器
|
|
|
MongoDatabase db = MongodbFactory.getDB(dbName);
|
|
|
GridFSBucket gridFS = GridFSBuckets.create(db);
|
|
|
String fileName = UUID.randomUUID().toString() + "." + fileType;
|
|
|
// String fileName = UUID.randomUUID().toString() + "." + fileType;
|
|
|
//自定义字段
|
|
|
Document metaDocument = new Document();
|
|
|
if (params != null && params.size() > 0) {
|
|
@ -59,21 +48,14 @@ public class GridFSUtil {
|
|
|
// Create some custom options
|
|
|
GridFSUploadOptions gridFSUploadOptions = new GridFSUploadOptions()
|
|
|
.chunkSizeBytes(defaultChunkSize).metadata(metaDocument);
|
|
|
|
|
|
GridFSUploadStream uploadStream = gridFS.openUploadStream(fileName, gridFSUploadOptions);
|
|
|
try {
|
|
|
byte[] data = FileUtil.toByteArray(blob.getBinaryStream());
|
|
|
uploadStream.write(data);
|
|
|
ObjectId id = uploadStream.getFileId();
|
|
|
if (id != null) {
|
|
|
return id;
|
|
|
com.mongodb.gridfs.GridFSFile gridFSFile = gridFsOperations.store(blob.getBinaryStream(), gridFSUploadOptions);
|
|
|
if (gridFSFile != null) {
|
|
|
return (ObjectId) gridFSFile.getId();
|
|
|
}
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
} finally {
|
|
|
if (uploadStream != null) {
|
|
|
uploadStream.close();
|
|
|
}
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
@ -86,13 +68,6 @@ public class GridFSUtil {
|
|
|
* @param params 自定义保存字段
|
|
|
*/
|
|
|
public static boolean uploadFile(String dbName, String filePath, Map<String, Object> params) {
|
|
|
//获取mongodb连接
|
|
|
// MongodbHelper mongoOrigin = new MongodbHelper(dbName);
|
|
|
//创建一个容器
|
|
|
MongoDatabase db = MongodbFactory.getDB(dbName);
|
|
|
GridFSBucket gridFS = GridFSBuckets.create(db);
|
|
|
File readFile = new File(filePath);
|
|
|
|
|
|
//自定义字段
|
|
|
Document metaDocument = new Document();
|
|
|
if (params != null && params.size() > 0) {
|
|
@ -104,20 +79,23 @@ public class GridFSUtil {
|
|
|
// Create some custom options
|
|
|
GridFSUploadOptions gridFSUploadOptions = new GridFSUploadOptions()
|
|
|
.chunkSizeBytes(defaultChunkSize).metadata(metaDocument);
|
|
|
|
|
|
GridFSUploadStream uploadStream = gridFS.openUploadStream(readFile.getName(), gridFSUploadOptions);
|
|
|
FileInputStream fileInputStream = null;
|
|
|
try {
|
|
|
byte[] data = FileUtil.toByteArray(filePath);
|
|
|
uploadStream.write(data);
|
|
|
ObjectId id = uploadStream.getFileId();
|
|
|
if (id != null) {
|
|
|
File readFile = new File(filePath);
|
|
|
fileInputStream = new FileInputStream(readFile);
|
|
|
com.mongodb.gridfs.GridFSFile gridFSFile = gridFsOperations.store(fileInputStream, gridFSUploadOptions);
|
|
|
if (gridFSFile != null) {
|
|
|
return true;
|
|
|
}
|
|
|
} catch (IOException e) {
|
|
|
e.printStackTrace();
|
|
|
} finally {
|
|
|
if (uploadStream != null) {
|
|
|
uploadStream.close();
|
|
|
if (fileInputStream != null) {
|
|
|
try {
|
|
|
fileInputStream.close();
|
|
|
} catch (IOException e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return false;
|
|
@ -128,30 +106,24 @@ public class GridFSUtil {
|
|
|
*
|
|
|
* @param dbName 数据库名
|
|
|
* @param savePath 文件保存路径
|
|
|
* @param objId GridFS文件保存ObjectId
|
|
|
* @param objectId GridFS文件保存ObjectId
|
|
|
* @return
|
|
|
*/
|
|
|
public static String downFile(String dbName, String savePath, ObjectId objId) {
|
|
|
//穿件mongodb连接
|
|
|
// MongodbHelper mongoOrigin = new MongodbHelper(dbName);
|
|
|
//创建一个容器
|
|
|
MongoDatabase db = MongodbFactory.getDB(dbName);
|
|
|
GridFSBucket gridFS = GridFSBuckets.create(db);
|
|
|
ByteArrayOutputStream out = new ByteArrayOutputStream();
|
|
|
gridFS.downloadToStream(objId, out);
|
|
|
public static String downFile(String dbName, String savePath, ObjectId objectId) {
|
|
|
FileOutputStream fileOutputStream = null;
|
|
|
try {
|
|
|
boolean succ = FileUtil.writeFile(savePath, out.toByteArray(), "utf-8");
|
|
|
if (succ) {
|
|
|
return savePath;
|
|
|
} else {
|
|
|
return null;
|
|
|
}
|
|
|
GridFSDBFile gridFSDBFile = gridFsOperations.findOne(Query.query(GridFsCriteria.where("_id").is(objectId)));
|
|
|
|
|
|
fileOutputStream = new FileOutputStream(savePath);
|
|
|
gridFSDBFile.writeTo(fileOutputStream);
|
|
|
|
|
|
return savePath;
|
|
|
} catch (IOException e) {
|
|
|
e.printStackTrace();
|
|
|
} finally {
|
|
|
if (out != null) {
|
|
|
if (fileOutputStream != null) {
|
|
|
try {
|
|
|
out.close();
|
|
|
fileOutputStream.close();
|
|
|
} catch (IOException e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
@ -171,28 +143,23 @@ public class GridFSUtil {
|
|
|
public static Map<String, StringBuffer> downFileList(String dbName, String savePath, List<GridFSFile> fsFiles) {
|
|
|
StringBuffer stringBuffer = new StringBuffer();
|
|
|
Map<String, String> fileNames = new HashMap<>();
|
|
|
//穿件mongodb连接
|
|
|
// MongodbHelper mongoOrigin = new MongodbHelper(dbName);
|
|
|
//创建一个容器
|
|
|
MongoDatabase db = MongodbFactory.getDB(dbName);
|
|
|
GridFSBucket gridFS = GridFSBuckets.create(db);
|
|
|
ByteArrayOutputStream out = new ByteArrayOutputStream();
|
|
|
if (fsFiles != null && fsFiles.size() > 0) {
|
|
|
for (GridFSFile fsFile : fsFiles) {
|
|
|
ObjectId objId = fsFile.getObjectId();
|
|
|
ObjectId objectId = fsFile.getObjectId();
|
|
|
String fileType = fsFile.getFilename().substring(fsFile.getFilename().lastIndexOf("."));
|
|
|
String newName = UUID.randomUUID().toString() + "." + fileType;
|
|
|
gridFS.downloadToStream(objId, out);
|
|
|
GridFSDBFile gridFSDBFile = gridFsOperations.findOne(Query.query(GridFsCriteria.where("_id").is(objectId)));
|
|
|
try {
|
|
|
boolean succ = FileUtil.writeFile(savePath + "/" + newName, out.toByteArray(), "utf-8");
|
|
|
if (succ) {
|
|
|
String type = getMimeType(out.toByteArray());
|
|
|
fileNames.put(newName, type);
|
|
|
// stringBuffer.append(newName).append(",");
|
|
|
continue;
|
|
|
} else {
|
|
|
gridFSDBFile.writeTo(out);
|
|
|
boolean success = FileUtil.writeFile(savePath + "/" + newName, out.toByteArray(), "utf-8");
|
|
|
if (!success) {
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
String type = getMimeType(out.toByteArray());
|
|
|
fileNames.put(newName, type);
|
|
|
} catch (IOException e) {
|
|
|
e.printStackTrace();
|
|
|
return null;
|
|
@ -215,29 +182,24 @@ public class GridFSUtil {
|
|
|
public static Map<String, StringBuffer> downFilesByObjectIds(String dbName, String savePath, List<ObjectId> ids) {
|
|
|
StringBuffer stringBuffer = new StringBuffer();
|
|
|
Map<String, String> fileNames = new HashMap<>();
|
|
|
//穿件mongodb连接
|
|
|
// MongodbHelper mongoOrigin = new MongodbHelper(dbName);
|
|
|
//创建一个容器
|
|
|
MongoDatabase db = MongodbFactory.getDB(dbName);
|
|
|
GridFSBucket gridFS = GridFSBuckets.create(db);
|
|
|
ByteArrayOutputStream out = new ByteArrayOutputStream();
|
|
|
List<GridFSFile> fsFiles = findFsFiles(dbName, ids);
|
|
|
List<GridFSDBFile> fsFiles = findFsFiles(dbName, ids);
|
|
|
if (fsFiles != null && fsFiles.size() > 0) {
|
|
|
for (GridFSFile fsFile : fsFiles) {
|
|
|
ObjectId objId = fsFile.getObjectId();
|
|
|
for (GridFSDBFile fsFile : fsFiles) {
|
|
|
ObjectId objectId = (ObjectId) fsFile.getId();
|
|
|
String fileType = fsFile.getFilename().substring(fsFile.getFilename().lastIndexOf("."));
|
|
|
String newName = UUID.randomUUID().toString() + "." + fileType;
|
|
|
gridFS.downloadToStream(objId, out);
|
|
|
GridFSDBFile gridFSDBFile = gridFsOperations.findOne(Query.query(GridFsCriteria.where("_id").is(objectId)));
|
|
|
try {
|
|
|
boolean succ = FileUtil.writeFile(savePath + "/" + newName, out.toByteArray(), "utf-8");
|
|
|
if (succ) {
|
|
|
String type = getMimeType(out.toByteArray());
|
|
|
fileNames.put(newName, type);
|
|
|
// stringBuffer.append(newName).append(",");
|
|
|
continue;
|
|
|
} else {
|
|
|
gridFSDBFile.writeTo(out);
|
|
|
boolean success = FileUtil.writeFile(savePath + "/" + newName, out.toByteArray(), "utf-8");
|
|
|
if (!success) {
|
|
|
|
|
|
break;
|
|
|
}
|
|
|
String type = getMimeType(out.toByteArray());
|
|
|
fileNames.put(newName, type);
|
|
|
|
|
|
} catch (IOException e) {
|
|
|
e.printStackTrace();
|
|
|
return null;
|
|
@ -261,13 +223,10 @@ public class GridFSUtil {
|
|
|
* 删除 mongodb-GridFS文件
|
|
|
*
|
|
|
* @param dbName
|
|
|
* @param objId
|
|
|
* @param objectId
|
|
|
*/
|
|
|
public static void deleteFile(String dbName, ObjectId objId) {
|
|
|
// MongodbHelper mongoOrigin = new MongodbHelper(dbName);
|
|
|
MongoDatabase db = MongodbFactory.getDB(dbName);
|
|
|
GridFSBucket gridFS = GridFSBuckets.create(db);
|
|
|
gridFS.delete(objId);
|
|
|
public static void deleteFile(String dbName, ObjectId objectId) {
|
|
|
gridFsOperations.delete(Query.query(GridFsCriteria.where("_id").is(objectId)));
|
|
|
}
|
|
|
|
|
|
/**
|
|
@ -277,29 +236,13 @@ public class GridFSUtil {
|
|
|
* @param filters 查询条件
|
|
|
* @return files集合
|
|
|
*/
|
|
|
public static List<GridFSFile> findFiles(String dbName, Map<String, Object> filters) {
|
|
|
//穿件mongodb连接
|
|
|
List<GridFSFile> list = new ArrayList<>();
|
|
|
//创建一个容器
|
|
|
MongoDatabase db = MongodbFactory.getDB(dbName);
|
|
|
GridFSBucket gridFSBucket = GridFSBuckets.create(db);
|
|
|
List<Bson> querys = new ArrayList<>();
|
|
|
//添加查询条件
|
|
|
if (filters != null && filters.size() > 0) {
|
|
|
for (Map.Entry<String, Object> entry : filters.entrySet()) {
|
|
|
String key = entry.getKey();
|
|
|
querys.add(Filters.eq(key, entry.getValue()));
|
|
|
}
|
|
|
public static List<GridFSDBFile> findFiles(String dbName, Map<String, Object> filters) {
|
|
|
Query query = new Query();
|
|
|
if (filters != null) {
|
|
|
filters.forEach((key, value) -> query.addCriteria(GridFsCriteria.where(key).is(value)));
|
|
|
}
|
|
|
// GridFSFindIterable gsIterable=gridFSBucket.find(Filters.eq("metadata.cda_id", "111"));
|
|
|
|
|
|
GridFSFindIterable gsIterable = gridFSBucket.find(Filters.and(querys));
|
|
|
MongoCursor<GridFSFile> it = gsIterable.iterator();
|
|
|
while (it.hasNext()) {
|
|
|
GridFSFile fsFile = it.next();
|
|
|
list.add(fsFile);
|
|
|
}
|
|
|
return list;
|
|
|
return gridFsOperations.find(query);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@ -309,116 +252,16 @@ public class GridFSUtil {
|
|
|
* @param ids objectId集合
|
|
|
* @return
|
|
|
*/
|
|
|
public static List<GridFSFile> findFsFiles(String dbName, List<ObjectId> ids) {
|
|
|
//穿件mongodb连接
|
|
|
List<GridFSFile> list = new ArrayList<>();
|
|
|
//创建一个容器
|
|
|
MongoDatabase db = MongodbFactory.getDB(dbName);
|
|
|
GridFSBucket gridFSBucket = GridFSBuckets.create(db);
|
|
|
List<Bson> querys = new ArrayList<>();
|
|
|
//添加查询条件
|
|
|
if (ids != null && ids.size() > 0) {
|
|
|
querys.add(Filters.in("_id", ids));
|
|
|
}
|
|
|
GridFSFindIterable gsIterable = null;
|
|
|
if (querys.size() > 0) {
|
|
|
gsIterable = gridFSBucket.find(Filters.and(querys));
|
|
|
} else {
|
|
|
gsIterable = gridFSBucket.find();
|
|
|
}
|
|
|
public static List<GridFSDBFile> findFsFiles(String dbName, List<ObjectId> ids) {
|
|
|
List<GridFSDBFile> list = new ArrayList<>();
|
|
|
ids.forEach(objectId -> {
|
|
|
GridFSDBFile gridFSDBFile = gridFsOperations.findOne(Query.query(GridFsCriteria.where("_id").is(objectId)));
|
|
|
list.add(gridFSDBFile);
|
|
|
});
|
|
|
|
|
|
MongoCursor<GridFSFile> it = gsIterable.iterator();
|
|
|
while (it.hasNext()) {
|
|
|
GridFSFile fsFile = it.next();
|
|
|
list.add(fsFile);
|
|
|
}
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
public static Map parseJsonToMap(JSONObject condition) {
|
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
|
HashMap map = new HashMap();
|
|
|
try {
|
|
|
Iterator fileNames = (Iterator) condition.names();
|
|
|
|
|
|
while (fileNames.hasNext()) {
|
|
|
String fieldName = (String) fileNames.next();
|
|
|
Object valueNode = condition.get(fieldName);
|
|
|
|
|
|
if (valueNode instanceof Blob) {
|
|
|
map.put(fieldName, valueNode);
|
|
|
} else {
|
|
|
map.put(fieldName, condition.get(fieldName).toString());
|
|
|
}
|
|
|
}
|
|
|
} catch (Exception var7) {
|
|
|
var7.printStackTrace();
|
|
|
}
|
|
|
|
|
|
|
|
|
return map;
|
|
|
}
|
|
|
|
|
|
|
|
|
//TODO 测试所用,后删除
|
|
|
public static void tTestFind(String tableName, String collection, Map<String, Object> params) {
|
|
|
MongodbHelper mongodbHelper = new MongodbHelper(tableName);
|
|
|
BasicDBObject basicDBObject = new BasicDBObject();
|
|
|
for (Map.Entry<String, Object> entry : params.entrySet()) {
|
|
|
String key = entry.getKey();
|
|
|
basicDBObject.append(key, entry.getValue());
|
|
|
}
|
|
|
FindIterable<Document> documents = mongodbHelper.query(collection, basicDBObject, null, null);
|
|
|
MongoCursor<Document> it = documents.iterator();
|
|
|
while (it.hasNext()) {
|
|
|
Document document = it.next();
|
|
|
List<Document> fileList = (List<Document>) document.get("files");
|
|
|
Document jsonNode = fileList.get(0);
|
|
|
List files = (List) jsonNode.get("files_id");
|
|
|
|
|
|
List<GridFSFile> fs = findFsFiles("mydb", files);
|
|
|
System.out.println(files.toString());
|
|
|
String filePath = "e:/test/";
|
|
|
Map<String, StringBuffer> path = downFileList("mydb", filePath, fs);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
// public static void main(String[] args) {
|
|
|
// try {
|
|
|
// //上传
|
|
|
// Map<String,Object> params= new HashMap<>();
|
|
|
//// params.put("cda_id","111");
|
|
|
//// params.put("report_id","1001");
|
|
|
// params.put("patient_id","1001");
|
|
|
// params.put("event_no","1001");
|
|
|
//// String fileName = "e:/test/肺2.jpg";
|
|
|
//// uploadFile("mydb", fileName,params);
|
|
|
// //下载
|
|
|
//// String filePath="e:/test/xiao_copy.jpg";
|
|
|
//// downFile("mydb",filePath,"579067939724e11514b2eead");
|
|
|
// //删除
|
|
|
//// deleteFile("mydb","57906e369724e11dd8e75798");
|
|
|
// //查询
|
|
|
//// List<GridFSFile> fsFiles = findFiles("mydb",params);
|
|
|
// // 根据objectId集合 查询
|
|
|
//// List<ObjectId> list=new ArrayList<>();
|
|
|
//// list.add(new ObjectId("5791c9399724e12b9437b229"));
|
|
|
//// list.add(new ObjectId("5795aab07a2b9020ec19fdfa"));
|
|
|
//
|
|
|
//// List<GridFSFile> fs=findFsFiles("mydb",list);
|
|
|
// //测试查询类
|
|
|
// tTestFind("document","CDA_TEST",params);
|
|
|
// //批量下载
|
|
|
//// String filePath="e:/test/";
|
|
|
//// downFileList("mydb",filePath, fs);
|
|
|
//
|
|
|
//
|
|
|
// } catch (Exception e) {
|
|
|
// e.printStackTrace();
|
|
|
// }
|
|
|
// }
|
|
|
|
|
|
|
|
|
/*************************************** MineType 工具类 *********************************/
|
|
|
/**
|
|
@ -499,31 +342,28 @@ public class GridFSUtil {
|
|
|
* @param filePath 文件路径
|
|
|
*/
|
|
|
public static String uploadFile(String dbName, String filePath, String fileName) {
|
|
|
//获取mongodb连接
|
|
|
// MongodbHelper mongoOrigin = new MongodbHelper(dbName);
|
|
|
//创建一个容器
|
|
|
MongoDatabase db = MongodbFactory.getDB(dbName);
|
|
|
GridFSBucket gridFS = GridFSBuckets.create(db);
|
|
|
//自定义字段
|
|
|
Document metaDocument = new Document();
|
|
|
// Create some custom options
|
|
|
GridFSUploadOptions gridFSUploadOptions = new GridFSUploadOptions()
|
|
|
.chunkSizeBytes(defaultChunkSize).metadata(metaDocument);
|
|
|
GridFSUploadStream uploadStream = gridFS.openUploadStream(fileName, gridFSUploadOptions);
|
|
|
FileInputStream fileInputStream = null;
|
|
|
try {
|
|
|
byte[] data = FileUtil.toByteArray(filePath);
|
|
|
uploadStream.write(data);
|
|
|
ObjectId id = uploadStream.getFileId();
|
|
|
fileInputStream = new FileInputStream(filePath);
|
|
|
com.mongodb.gridfs.GridFSFile gridFSFile = gridFsOperations.store(fileInputStream, gridFSUploadOptions);
|
|
|
ObjectId id = (ObjectId) gridFSFile.getId();
|
|
|
if (id != null) {
|
|
|
return fileName;
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
} finally {
|
|
|
if (uploadStream != null) {
|
|
|
uploadStream.close();
|
|
|
File file = new File(filePath);
|
|
|
file.deleteOnExit();
|
|
|
if (fileInputStream != null) {
|
|
|
try {
|
|
|
fileInputStream.close();
|
|
|
} catch (IOException e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return "";
|
|
@ -549,19 +389,17 @@ public class GridFSUtil {
|
|
|
|
|
|
/**
|
|
|
* 读取文件内容
|
|
|
* @param dbName 数据库名
|
|
|
* @param fileName 文件名
|
|
|
*
|
|
|
* @param dbName 数据库名
|
|
|
* @param fileName 文件名
|
|
|
* @return
|
|
|
*/
|
|
|
public static String readFile(String dbName, String fileName){
|
|
|
public static String readFile(String dbName, String fileName) {
|
|
|
try {
|
|
|
MongoDatabase db = MongodbFactory.getDB(dbName);
|
|
|
GridFSBucket gridFS = GridFSBuckets.create(db);
|
|
|
ByteArrayOutputStream out = new ByteArrayOutputStream();
|
|
|
gridFS.downloadToStreamByName(fileName, out);
|
|
|
String content = FileUtil.readFileText(out.toByteArray());
|
|
|
out.close();
|
|
|
return content;
|
|
|
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
|
|
GridFSDBFile gridFSDBFile = gridFsOperations.findOne(Query.query(GridFsCriteria.where("").is(fileName)));
|
|
|
gridFSDBFile.writeTo(byteArrayOutputStream);
|
|
|
return byteArrayOutputStream.toString();
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
return null;
|
|
@ -578,26 +416,19 @@ public class GridFSUtil {
|
|
|
* @return
|
|
|
*/
|
|
|
public static String downFile(String dbName, String savePath, String fileName) {
|
|
|
//穿件mongodb连接
|
|
|
// MongodbHelper mongoOrigin = new MongodbHelper(dbName);
|
|
|
//创建一个容器
|
|
|
MongoDatabase db = MongodbFactory.getDB(dbName);
|
|
|
GridFSBucket gridFS = GridFSBuckets.create(db);
|
|
|
ByteArrayOutputStream out = new ByteArrayOutputStream();
|
|
|
gridFS.downloadToStreamByName(fileName, out);
|
|
|
FileOutputStream fileOutputStream = null;
|
|
|
try {
|
|
|
boolean succ = FileUtil.writeFile(savePath, out.toByteArray(), "UTF-8");
|
|
|
if (succ) {
|
|
|
return savePath;
|
|
|
} else {
|
|
|
return null;
|
|
|
}
|
|
|
File file = new File(savePath);
|
|
|
fileOutputStream = new FileOutputStream(file);
|
|
|
GridFSDBFile gridFSDBFile = gridFsOperations.findOne(Query.query(GridFsCriteria.where("").is(fileName)));
|
|
|
gridFSDBFile.writeTo(fileOutputStream);
|
|
|
return savePath;
|
|
|
} catch (IOException e) {
|
|
|
e.printStackTrace();
|
|
|
} finally {
|
|
|
if (out != null) {
|
|
|
if (fileOutputStream != null) {
|
|
|
try {
|
|
|
out.close();
|
|
|
fileOutputStream.close();
|
|
|
} catch (IOException e) {
|
|
|
e.printStackTrace();
|
|
|
}
|