[java][代码]使用java在mongodb上传下载文件

  1. 建立java项目
  2. 新建lib包,导入jar包

3.链接mongdo数据库代码

/**

* 1.获取连接

* 2.上传文件

* 3.下载文件

* 4.删除文件

*

*/

public static GridFS GetMongoGridFS(){

List<ServerAddress> adds = new ArrayList<>();

ServerAddress serverAddress = new ServerAddress("192.168.1.100", 27017);

adds.add(serverAddress);

List<MongoCredential> credentials = new ArrayList<>();

//MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码

MongoCredential mongoCredential = MongoCredential.createScramSha1Credential("uname", "mg", "pw".toCharArray());

credentials.add(mongoCredential);

//通过连接认证获取MongoDB连接

MongoClient ++mongoClient++ = new ++MongoClient++++(++++adds++ ++,++ ++credentials++ ++)++ ;

//连接到数据库

DB mongoDatabase = mongoClient.++getDB++++(++++"testdb"++ ++)++ ;

GridFS myFS = new GridFS(mongoDatabase);

return myFS;

}

上传文件

/**

* @return

* 上传文件

* @Title : UploadFile

* @Description : TODO (这里用一句话描述这个方法的作用)

* @param : @param file

* @return : void

* @throws

*/

public String UploadFile(File file) {

try {

GridFS gridFS = GetMongoGridFS();

GridFSFile mgupfile = gridFS.createFile(file);

mgupfile.save();

return mgupfile.getId().toString();

} catch (Exception e) {

return null ;

}

}

下载文件

/**

* 下载文件

* @Title : DownloadFile

* @Description : TODO (这里用一句话描述这个方法的作用)

* @param : @param objectid

* @param : @return

* @return : String

* @throws

*/

public String DownloadFile(String objectid) {

try {

GridFS gridFS = GetMongoGridFS();

GridFSDBFile file2 =gridFS.findOne(new ObjectId(objectid));

String filename="D:/tmp/5"+file2.getFilename();

long writeTo = file2.writeTo(new File(filename));

if (writeTo>=0){

return filename;

}else {

return null ;

}

} catch (Exception e) {

return null ;

}

}

删除文件

/**

* 删除文件

* @Title : DeleteFile

* @Description : TODO (这里用一句话描述这个方法的作用)

* @param : @param objectid

* @param : @return

* @return : String

* @throws

*/

public void DeleteFile(String objectid) {

GridFS gridFS = GetMongoGridFS();

GridFSDBFile file =gridFS.findOne(new ObjectId("5c4fed8064873a4a68427f93"));

gridFS.remove((ObjectId) file.getId());

}

相关推荐
一水鉴天3 小时前
映射、哈希表与哈斯图:计算机科学的三种基线 20261003(元宝)
开发语言·人工智能
Frank_refuel3 小时前
C++11之一场名为“搬家”的 C++ 之旅
开发语言·c++
Wang's Blog4 小时前
Java 项目实战: 外卖平台优化-Nginx配置文件结构与块层级
java·开发语言·nginx
2601_962071574 小时前
类变量和全局变量的查找路径有什么区别?
开发语言·python
\光辉岁月/6 小时前
5.java-数组
java·开发语言
Java后端的Ai之路6 小时前
Python进阶探索29_eval内置函数
开发语言·python·探索·eval·内置函数
谢亮_vipxieliang6 小时前
Spring 事务失效的常见场景
java·开发语言·数据库·spring boot
时间的拾荒人6 小时前
Qt 多线程详解:从 QThread 到实战
开发语言·qt·面试
郑州光合科技余经理6 小时前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
2601_962071576 小时前
类变量和全局变量的生命周期有什么区别?
java·开发语言·jvm