SSM项目文件上传到阿里云

一.创建阿里云存储库

1.登录阿里云 搜索OSS:

2.购买OSS或者试用OSS之后进入管理控制台

3.创建bucket(记住EndPoint,后续SSM要用到):

4.创建AccessKey,并记录(后续SSM要用到)

5.完成存储空间创建

二.SSM文件上传接口编写

1.添加阿里云存储依赖:

<dependency>
      <groupId>com.aliyun.oss</groupId>
      <artifactId>aliyun-sdk-oss</artifactId>
      <version>3.10.2</version>
</dependency>

2.编写文件上传接口:

package com.hl.controller;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.io.InputStream;
import java.util.UUID;

/**
 * @Author Polaris
 * @Date 2024/2/22
 * @注释
 */
@Controller
@RequestMapping("/file")
public class FileController {
    @RequestMapping("/upload")
    @ResponseBody
    public String upload(MultipartFile file) throws IOException {
        //https://polaris-image.oss-cn-wuhan-lr.aliyuncs.com/cat1.jpg
        //endPoint: oss-cn-wuhan-lr.aliyuncs.com 地域:华中武汉
        String endPoint = "oss-cn-wuhan-lr.aliyuncs.com";
        //用户信息
        String accessKeyId = "LTAI5tDqpAqqkddBMKbSgjYj";
        String accessKeySecret = "q3jIo39Z9jjZGBDlpHMcKGtHUYR2hm";
        //存储空间名称
        String bucketName = "polaris-image";
        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endPoint, accessKeyId, accessKeySecret);
        // 上传文件流。
        InputStream inputStream = file.getInputStream();
        //文件原名
        String fileName = file.getOriginalFilename();
        //生成随机文件名
        fileName = UUID.randomUUID().toString().replace("-", "") + fileName;
        //上传文件流
        ossClient.putObject(bucketName, fileName, inputStream);
        //关闭OSSClient。
        ossClient.shutdown();
        //返回文件路径
        return "https://" + bucketName + "." + endPoint + "/" + fileName;
    }
}

三.Vue+element-UI测试文件上传

<el-upload
      class="avatar-uploader"
// action为接口路径
      action="http://localhost:8080/file/upload"
//是否展示文件列表
      :show-file-list="false"
      :on-success="handleAvatarSuccess"
      :before-upload="beforeAvatarUpload"
      >
      <img
      v-if="this.imgPath"
      :src="this.imgPath"
      class="avatar"
      />
    <i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>

//文件上传成功的回调函数
handleAvatarSuccess2(res) {
      console.log(res);//服务端返回数据
      this.imgPath = res;
},

// 文件上传的前置判断方法
beforeAvatarUpload(file) {
      const isJPG = file.type === "image/jpeg";
      const isLt2M = file.size / 1024 / 1024 < 2;
      if (!isJPG) {
        this.$message.error("上传头像图片只能是 JPG 格式!");
      }
      if (!isLt2M) {
        this.$message.error("上传头像图片大小不能超过 2MB!");
      }
      return isJPG && isLt2M;
},

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值