文件上传至minio(前台传file)

将base64转成file传入后台 

//将base64转换为文件

dataURLtoFile: function(dataurl, filename) {
        var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
        bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
        while(n--){
            u8arr[n] = bstr.charCodeAt(n);
        }
        return new File([u8arr], filename, {type:mime});
    },

upload: function() {
      var self = this;
      var imageName = "photo."+"jpg";
      var formData = new FormData();
      formData.append('file',self.dataURLtoFile(fileImg,imageName));  //fileImg     base64编码
      vueUI.ajaxCall({
          url: "*******"+'/*****/upload',
          async: false,
          processData: false, //***********
          contentType: false,//************
          data: formData,
          success: function() {
            vueUI.toolTips("success", "上传成功");
            window.location.reload();
          },
          error:function(){
              vueUI.toolTips("success", "上传失败");
          }
        });
      
    }

后台方法

@PostMapping("/upload")
    public Response upload(@RequestParam("file") MultipartFile file) {
        String fileName = IdUtil.simpleUUID() + StrUtil.DOT + FileUtil.extName(file.getOriginalFilename());
        Map<String, String> resultMap = new HashMap<>(4);
        resultMap.put("bucketName", CommonConstants.BUCKET_NAME);  //CommonConstants.BUCKET_NAME minio上文件名 
        resultMap.put("fileName", fileName);
        try {
            minioTemplate.putObject(CommonConstants.BUCKET_NAME, fileName, file.getInputStream());
        } catch (Exception e) {
            log.error("上传失败", e);
            return new Response().failure(CommonConstants.FAIL, e.getLocalizedMessage());
        }
        return new Response().success(resultMap);
    }

要将文件上传MinIO,您可以按照以下步骤操作: 1. 首先,请确保您已成功安装MinIO服务器并配置好相应的环境。 2. 在您的应用程序中,可以使用MinIO的Java SDK或其他语言的SDK来进行文件上传。 3. 在您的代码中,需要引入MinIO的客户端库并进行相应的配置,以连接到MinIO服务器。 4. 创建一个文件上传的接口或方法,接收上的文件作为参数。 5. 在该接口或方法中,使用MinIO的客户端库将文件上传MinIO服务器。 6. 在上文件时,可以指定文件存储的桶(bucket)和对象(object)的名称。 7. 上完成后,您可以通过MinIO的客户端库来获取相关的上结果或处理错误情况。 下面是一个示例的Java代码片段,展示了如何使用MinIO的Java SDK进行文件上传: ```java import io.minio.MinioClient; import io.minio.errors.MinioException; import org.springframework.web.multipart.MultipartFile; public class MinIOUploader { private static final String MINIO_ENDPOINT = "http://localhost:9002"; private static final String ACCESS_KEY = "your-access-key"; private static final String SECRET_KEY = "your-secret-key"; private static final String BUCKET_NAME = "your-bucket-name"; public String uploadFile(MultipartFile file) { try { // 创建MinIO客户端 MinioClient minioClient = new MinioClient(MINIO_ENDPOINT, ACCESS_KEY, SECRET_KEY); // 检查存储桶是否存在,如果不存在则创建 boolean isExist = minioClient.bucketExists(BUCKET_NAME); if (!isExist) { minioClient.makeBucket(BUCKET_NAME); } // 生成文件在MinIO服务器中的唯一对象名称 String objectName = System.currentTimeMillis() + "-" + file.getOriginalFilename(); // 上文件 minioClient.putObject(BUCKET_NAME, objectName, file.getInputStream(), file.getContentType()); // 返回文件的访问路径 return minioClient.getObjectUrl(BUCKET_NAME, objectName); } catch (MinioException e) { e.printStackTrace(); return "文件上传失败"; } catch (Exception e) { e.printStackTrace(); return "文件上传失败"; } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值