Loading... ## 又拍云: > **又拍云存储免费额度是每月10GB,CDN免费额度是15GB。**具有免费资源存储额度,这样我们就不用把资源存储到自己的服务器上了,大大降低了服务器的压力,提高了应用的可移植性。 ### 准备: 1.官网:[https://www.upyun.com/](https://www.upyun.com/) 2.首先我们去又拍云注册一个账号 3.进入云存储 4.创建服务,按照要求填写即可 5.到账号管理新建操作员,把账号和密钥保存下来,后面会用 6.进入刚才我们创建成功的服务,划到存储管理最下面,授权刚才我们新建的操作员 ## 整合: ### 导入依赖: ```java <!--又拍云--> <dependency> <groupId>com.upyun</groupId> <artifactId>java-sdk</artifactId> <version>4.1.3</version> </dependency> ``` ### controller接口 ```java @RequestMapping("file") @RestController public class FileController { @PostMapping("getPicUrl") public Result<Object> uploadIcon(MultipartFile file) throws IOException, UpException { UpYun upYun = new UpYun("创建的服务名称", "操作员账号", "操作员密钥"); String fileName = file.getOriginalFilename()+ UUID.randomUUID() +".jpg"; System.out.println("图片名称:"+fileName); final boolean flag = upYun.writeFile("/blog/userIcon/" + fileName, file.getBytes(), false); System.out.println(flag); if(flag){ String picUrl = "创建服务中的域名" + fileName; final HashMap<String, Object> map = new HashMap<>(); map.put("picUrl", picUrl); return Result.success(map); } return Result.error("上传失败,请重试"); } } ``` ### 效果图:  ## element-ui ### 实现代码: ```javascript <!-- 文件描述: 创建时间:2022/10/30 16:24 创建人:本当迷 --> <template> <div class=""> <el-upload class="avatar-uploader" action="http://localhost:9090/api/file/getPicUrl/" :show-file-list="false" :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload"> <img v-if="imageUrl" :src="imageUrl" class="avatar" alt="" style=""> <i v-else class="el-icon-plus avatar-uploader-icon"></i> </el-upload> </div> </template> <script> export default { // eslint-disable-next-line vue/multi-word-component-names name: 'About', // import引入的组件需要注入到对象中才能使用 components: {}, data() { // 这里存放数据 return { imageUrl: '' } }, // 监听属性 类似于data概念 computed: {}, // 方法集合 methods: { // 文件上传成功时的钩子 handleAvatarSuccess(res, file) { this.imageUrl = URL.createObjectURL(file.raw); }, // 上传文件之前的钩子,参数为上传的文件,若返回 false 或者返回 Promise 且被 reject,则停止上传。 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; } }, // 监控data中的数据变化 watch: {}, // 生命周期 - 创建完成(可以访问当前this实例) created() { }, // 生命周期 - 挂载完成(可以访问DOM元素) mounted() { }, } </script> <style scoped> .avatar-uploader .el-upload { border: 1px dashed #d9d9d9; border-radius: 6px; cursor: pointer; position: relative; overflow: hidden; } .avatar-uploader .el-upload:hover { border-color: #409EFF; } .avatar-uploader-icon { font-size: 28px; color: #8c939d; width: 178px; height: 178px; line-height: 178px; text-align: center; } .avatar { width: 178px; height: 178px; display: block; } </style> ``` ### 效果图:  最后修改:2022 年 11 月 02 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果文章有用,请随意打赏。
1 条评论
认真看了下感觉不错,探花里面还有一个阿里云oss上传案例,识别人脸,也是调用。