上传文件至GridFs

/**
 * 上传文件至GridFs
 * @param gridFsTemplate
 * @param file
 */

需要自行导入jar包
public static ObjectId uploadFile(GridFsTemplate gridFsTemplate, MultipartFile file){
    try {
        //获取文件的MD5
        String md5 = DigestUtils.md5DigestAsHex(file.getInputStream());
        Query query = new Query();
        query.addCriteria(Criteria.where("md5").is(md5));
        //根据文件MD5值查询
        GridFSFile gridFSDBFile = gridFsTemplate.findOne(query);
        //如果不存在重复文件则存入GridFS
        if(CommentUtils.isEmpty(gridFSDBFile)) {
            log.info("upload file..");
            DBObject metaData = new BasicDBObject();
            metaData.put("createdDate", new Date());
            String fileName = file.getOriginalFilename();
            log.info("File Name: " + fileName);
            ObjectId objectId = gridFsTemplate.store(file.getInputStream(), fileName, file.getContentType(), metaData);
            log.info("File upload: " + file.getContentType());
            return objectId;
        }
        return gridFSDBFile.getObjectId();
    } catch (Exception e) {
        log.error("IOException: " + e);
        throw new BadRequestException(ExceptionEnum.UPLOAD_FILE_FILE.getMessage());
    }
}

猜你喜欢

转载自www.cnblogs.com/lovetl/p/12749773.html
今日推荐