FileController.java 1.83 KB
package com.pashanhoo.common.util.fileupload;

import com.pashanhoo.common.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * 文件上传
 */
@Api(tags = "文件控制器")
@RequestMapping("/file")
@RestController
public class FileController {

    @Autowired
    MinioUtil minioUtil;
    @Autowired
    MinioConfig minioConfig;

    @RequestMapping(value = "/upload", method = RequestMethod.POST)
    @ApiOperation("上传单个文件")
    public Result upload(@RequestPart("file") MultipartFile file, HttpServletResponse response) {

        try {
            return Result.ok(minioUtil.upload(file));
        } catch (Exception e) {
            return Result.exception(e.getMessage());
        }
    }

    @RequestMapping(value = "/batchUpload", method = RequestMethod.POST,headers = "content-type=multipart/form-data")
    @ApiOperation("上传多个文件")
    public Result upload(@RequestPart("file") MultipartFile[] files, HttpServletResponse response) {

        try {
            return Result.ok(minioUtil.batchUpload(files));
        } catch (Exception e) {
            return Result.exception(e.getMessage());
        }
    }

    @DeleteMapping("/deleteFile")
    @ApiOperation("删除文件")
    public Result deleteFile(@ApiParam("存储url") @RequestParam("saveUrl") String saveUrl){
        try {
             minioUtil.removeObject(minioConfig.getBucket(), saveUrl);
            return Result.ok();
        } catch (Exception e) {
            return Result.exception(e.getMessage());
        }
    }

}