资源简介

由于MongoDB的版本3.3之后,原来的GridFS的getDB()已经被废除了,所以自己花费了梁哥小时,写了GridFSBucket的方法,试下按照文件名和ObjectID的下载方法!希望对你们有用!

资源截图

代码片段和文件信息

package MongoTest;

import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.gridfs.GridFSBucket;
import com.mongodb.client.gridfs.GridFSBuckets;
import com.mongodb.client.gridfs.model.GridFSUploadOptions;
import org.bson.Document;
import org.bson.types.objectId;

import java.io.*;
import java.util.ArrayList;
import java.util.List;

/**
 * Created by liu on 2017-9-8.
 */
public class MogoUp {
    public static void main(String[] args) throws IOException {
        //连接MongoDB
        //连接数据库
        List list = new ArrayList();
        // 连接到MongoDB服务 如果是远程连接可以替换“localhost”为服务器所在IP地址
        // ServerAddress()两个参数分别为 服务器地址 和 端口
        ServerAddress serverAddress = new ServerAddress(“169.254.123.90“ 27017);
        List addrs = new ArrayList();
        addrs.add(serverAddress);
        MongoCredential credential = MongoCredential.createScramSha1Credential(“sa“ “admin“ “xush“.toCharArray());
        List credentials = new ArrayList();
        credentials.add(credential);
        MongoClient client = new MongoClient(addrs credentials);
        //链接测试
        MongoDatabase db = client.getDatabase(“lhc“);
        MongoCollection coll = db.getCollection(“test“);

        //上传文件
        InputStream in = null;
        String FileName = “C:\\Users\\liu\\Desktop\\CREC2010.svg“;
        File file = new File(FileName);
        String fileName = file.getName();
        String fileType = fileName.substring(fileName.lastIndexOf(“.“) fileName.length());
        in = new FileInputStream(file);
        GridFSBucket bucket = GridFSBuckets.create(db);
        GridFSUploadOptions options = new GridFSUploadOptions();
        //设置去除fileName之外的其他信息
        Document metadata = new Document();
        metadata.append(“contentType“ fileType);
        options.metadata(metadata);
        objectId objectId = bucket.uploadFromStream(fileName in options);
        System.out.println(objectId);
        System.out.println(“上传成功“);

        //文件下载
        OutputStream os = null;
        String files = “C:\\Users\\liu\\Desktop\\CREC209.svg“;
        File file2 = new File(files);
        if (!file2.exists()) {
            file2.createNewFile();
        }
        os = new FileOutputStream(file2);
        GridFSBucket bucket3 = GridFSBuckets.create(db);

//        bucket3.downloadToStream(new objectId(objectId.toString())os);  //根据objectID
        bucket3.downloadToStream(fileName os);    //根据文件名
        System.out.println(“下载成功“);

    }
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-09-08 17:34  mongoDB上传大文件和下载文件\
     文件        2947  2017-09-08 17:34  mongoDB上传大文件和下载文件\MogoUp.java
     文件     1814408  2017-09-08 15:25  mongoDB上传大文件和下载文件\mongo-java-driver-3.5.0.jar

评论

共有 条评论