springboot java图片上传到 mongo (GridFS 存储文件)

1. 控制器代码
    @Autowired
    FileService fileServiceImpl;

    @RequestMapping(value = "UploadFiles", method = RequestMethod.POST)
    @ResponseBody
    public Object handleFileUpload(HttpServletRequest request) throws Exception {

        List files = ((MultipartHttpServletRequest) request).getFiles("file");
        MultipartFile multipartFile = null;
        ResponseVo response = new ResponseVo();

        request.setCharacterEncoding("UTF-8");
        for (int i = 0; i < files.size(); ++i) {
            multipartFile = files.get(i);
            if (!multipartFile.isEmpty()) {
                String uploadFilePath = multipartFile.getOriginalFilename();
                System.out.println("uploadFlePath:" + uploadFilePath);
                String uploadFileName = uploadFilePath.substring(
                        uploadFilePath.lastIndexOf('\\') + 1, uploadFilePath.indexOf('.'));
                System.out.println("multiReq.getFile()" + uploadFileName);
                // 截取上传文件的后缀
                String uploadFileSuffix = uploadFilePath.substring(
                        uploadFilePath.lastIndexOf('.'), uploadFilePath.length());
                System.out.println("uploadFileSuffix:" + uploadFileSuffix);

                 File file1 = File.createTempFile(uploadFileName,uploadFileSuffix);

                multipartFile.transferTo(file1);
                fileServiceImpl.uploadPic(file1);

                file1.delete(); //删除缓存file
            } else {
                System.out.println("上传文件为空");
            }
        }
        response.setCode(Constant.SUCCESS_CODE);
        return response;
    }

2.业务层

@Autowired
FileDao fileDao;

@Override
public String uploadPic(File file) throws Exception {
    return fileDao.uploadPic(file);
}

3.数据层

@Resource
public MongoTemplate mongoTmp; 
 public String uploadPic(File file) throws Exception{
        GridFS gridFS = new GridFS(mongoTmp.getDb(),"phone_pic");
        GridFSInputFile gridFSInputFile = gridFS.createFile(file);
 
        gridFSInputFile.setFilename(file.getName());
        gridFSInputFile.save();
        return gridFSInputFile.getId().toString();
    }

 

4.springboot 配置就不说了,配好数据库和文件上传的size就好

你可能感兴趣的:(springboot java图片上传到 mongo (GridFS 存储文件))