网上的案例看了下,感觉可行,就自己改了一部分,补全了一部分,成功上传成功。

后端:

pom引入:

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

配置文件:

endPoint在你创建好的bucket的概览里面可以找到,accessKeyId和secretAccessKey是在授权管理里面生成

import com.aliyun.oss.OSSClient;
import com.aliyun.oss.OSSClientBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class OssClientConfig {@Beanpublic OSSClient createOssClient() {return (OSSClient)new OSSClientBuilder().build("你的对外访问的endPoint","你的accessKeyId","你的secretAccessKey");}
}

service:

import com.aliyun.oss.OSSClient;
import com.atguigu.ggkt.exception.GuiguException;
import com.atguigu.ggkt.vod.service.IOssService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;import java.io.IOException;
import java.time.LocalDate;
import java.util.UUID;@Service
public class IOssServiceImpl implements IOssService {@Autowiredprivate OSSClient ossClient;@Overridepublic String upload(MultipartFile file) {String bucketName = "你创建的bucket的名字";try {String objectName = getBucketName(file.getOriginalFilename());// 创建PutObject请求。ossClient.putObject(bucketName, objectName, file.getInputStream());return "https://" +bucketName+"."+ ossClient.getEndpoint().getHost() + "/" + objectName;} catch (IOException e) {throw new GuiguException(400,"上传失败");}}//图片格式,可以自己加private static final String[] imageExtension = new String[]{ ".jpg", ".jpeg",  ".png"};private String getBucketName(String url) {String ext = "";for(String extItem:imageExtension){if(url.contains(extItem)){ext = extItem;break;}}//日期将作为文件夹名,每天的图片会存到当天的文件夹内//文件名为uuid值return LocalDate.now() +"/"+ UUID.randomUUID() +ext;}
}

controller:

    @PostMapping(value = "/upload")@ApiOperation("上传")public Result upload(@RequestParam("file") MultipartFile file, HttpServletRequest req)  {return Result.ok(ossService.upload(file)).message("文件上传成功");}

用postman测试了一下:

{"code": 20000,"message": "文件上传成功","data": "https://xxxx-xxxxx.oss-cn-guangzhou.aliyuncs.com/2022-11-09/f845560f-6c95-41d4-8d85-e31deae3780c.png"
}

前端:

action的值就是上传的api接口

      <el-form-item label="讲师头像"><el-upload:show-file-list="false":on-success="handleAvatarSuccess":before-upload="beforeAvatarUpload":on-error="handleAvatarError":action="BASE_API+'/admin/vod/teacher/upload'"class="avatar-uploader"><img v-if="teacher.avatar" :src="teacher.avatar"><i v-else class="el-icon-plus avatar-uploader-icon" /></el-upload></el-form-item>
methods: {// 上传成功回调handleAvatarSuccess(res, file) {// console.log(res)if (res.code === 20000) {// console.log(res)this.teacher.avatar = res.data// 强制重新渲染this.$forceUpdate()} else {this.$message.error('上传失败 (非0)')}},// 错误处理handleAvatarError() {console.log('error')this.$message.error('上传失败(http失败)')},// 上传校验beforeAvatarUpload(file) {const isJPG = file.type === 'image/jpeg' || file.type === 'image/png' || file.type === 'image/jpg'const isLt2M = file.size / 1024 / 1024 < 5if (!isJPG) {this.$message.error('上传头像图片只能是 JPG/PNG/JPEG 格式!')}if (!isLt2M) {this.$message.error('上传头像图片大小不能超过 5MB!')}return isJPG && isLt2M}}

Spring Boot+Vue+阿里云OOS实现图片上传相关推荐

  1. 使用阿里云的OSS图片上传,这里是用的上传网络流

    使用阿里云的OSS图片上传,这里是用的上传网络流 思路: /** 文件上传到OSS 上传网络流 以下代码用于上传网络流: 1.通过element的el-upload插件,通过action发送请求到后台 ...

  2. 使用阿里云OSS实现图片上传案例

    文章目录 前言 一.OSS是什么? 二.使用步骤 1.开通OSS服务 2.创建bucket 3.创建子账户 4.查看帮助文档,编写后端代码 5.layui前端 总结 前言 在正式的开发环境中,类似图片 ...

  3. Typora + Picgo + 阿里云oss实现图片上传

    Typora + Picgo + 阿里云oss实现图片上传 设置原因 Typora是一款markdown文本编辑器,无法承载本地图片存储的功能,书写好的文章上传到博客或其他设备上时会导致图片丢失,无法 ...

  4. Typora+PicGo+阿里云OSS实现图片上传功能

    烦恼 Typora是最好用的markdown语法的工具之一:平时做笔记都是使用这个工具,免费,简洁好用,用上之后就爱上了.但是它默认图片是放在本地的.为了用好这个工具,也是经历了一打怪之旅. 开始不做 ...

  5. 记录vue+饿了么整合阿里云oss 实现图片上传保存到MySQL 前台回显

    vue代码 查看图片 上一张下一张前后切换图片的实现 <el-table-column label="头像" width="100" align=&quo ...

  6. vue+天翼云OOS文件存储+上传进度条

    在使用天翼云文件存储时,发现官方文档里写的不太多.网上相关的资料也很少,关于上传进度条的更是几乎没有.跟官方的技术人员对接后,整理前端使用教程如下: 在public文件夹下放置天翼云OOS的js文件, ...

  7. Spring boot上传文件(图片)到阿里云OSS(直接上传到应用服务器)

    Spring boot上传文件(图片)到阿里云OSS(直接上传到应用服务器) 主要思路 上传图片的思路有两种: 第一种是上传到应用服务器,再由应用服务器上传到OSS.这种适合上传的文件较小,较为简单, ...

  8. Spring Boot集成阿里云视频点播服务的过程记录

    阿里云视频点播 效果预览 视频点播 视频点播概述 功能 优势 流程 环境准备 开通视频点播 创建RAM用户并授权 上传SDK 上传流程 下载上传SDK 安装上传SDK 集成Java上传SDK 异常说明 ...

  9. spring boot 整合 阿里云oss上传

    Spring Boot 整合 阿里云OSS上传 OSS申请和配置 1. 注册登录 2.开通以及配置 springboot整合使用 1. 进入我们springboot的项目中,导入oss相关依赖 2. ...

最新文章

  1. Ethernet/IP 学习笔记五
  2. C# 操作其他进程ListView
  3. 安卓 linux找回内置存储,Android手机自带内部存储路径的获取
  4. Spring MVC 实践 - Base
  5. 微信小程序自带地图_微信小程序之map地图
  6. 运行gclient一直没反应_安川变频器通电没反应维修措施分享
  7. (NeurIPS 2019) Gated CRF Loss -一种用于弱监督图像语义分割的新型损失函数
  8. case结构条件语句
  9. Java代码规范之编程规约
  10. linux vi脚本,用VIM编写脚本
  11. 网站木马检测_网站建立检测劫持,网站建立检测劫持如何操作,详细步骤
  12. 重标极差分析法matlab,重标极差(RS)分析法估计Hurst指数的有效性检验.doc
  13. ASC19启动:在培养超算人才的路上砥砺前行
  14. mysql 小数点多余0_mysql中如何去除小数点后面多余的0
  15. Spring Core 之 Validation, Data Binding(校验和数据绑定)
  16. windows日志安全性事件类型
  17. 如何取消程序的默认打开方式 windows亲测简单有效!
  18. Nokia n97详解
  19. JS基础-尚硅谷-滚动条-视频P110
  20. 第十九天:初识Linux+系统与设置命令+目录管理

热门文章

  1. 近端梯度法(proximal gradient)
  2. 用计算机玩游戏的视频教程,让桌面上同时操作游戏和显示视频的技巧-电脑教程...
  3. RP产品原型资源分享-论坛类
  4. una到底啥意思_Una_英文名Una是什么意思
  5. The specified target project directory 项目名\src\main\resources does not exist 问题解决
  6. 语言-汉语-官话-中原官话-兖菏片-菏泽方言:菏泽方言
  7. VMware16的安装及VMware配置Linux虚拟机(详解版)
  8. 利用计算机打字教学设计,《键盘打字》教学设计
  9. 做一个企业网站需要多少钱?
  10. 如何解决ping不通问题