本文共 4309 字,大约阅读时间需要 14 分钟。
效果图1:
com.aliyun.oss aliyun-sdk-oss 3.8.0
在后台定义一个控制器:
package com.ff.controller;import com.aliyun.oss.OSSClient;import org.springframework.web.bind.annotation.CrossOrigin;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.multipart.MultipartFile;import java.io.IOException;import java.io.InputStream;import java.util.HashMap;import java.util.Map;import java.util.UUID;@RestController@RequestMapping("/file")@CrossOriginpublic class FileController { // 阿里云oss上传文件相关属性值 // 阿里云API的外网域名 public static final String ENDPOINT = "oss-cn-beijing.aliyuncs.com"; // 阿里云API的密钥 public static final String ACCESS_KEY_ID = "LTAI4Fzm3c6EmUexCHLvZNcm"; // 阿里云API的密钥Access Key Secret public static final String ACCESS_KEY_SECRET = "b8OrjTpYWW3sZSlimy4sxr2WJuNX09"; // 阿里云API的bucket名称 public static final String BACKET_NAME = "jjjqqq"; // 阿里云API的文件夹名称 public static final String FOLDER = "photo/"; public static final String URl = "https://jjjqqq.oss-cn-beijing.aliyuncs.com/"; //图片上传 @RequestMapping("uploadPhoto") public MapuploadPhoto(MultipartFile file) { Map map=new HashMap<>(); OSSClient ossClient = null; InputStream inputStream = null; try { ossClient = new OSSClient(ENDPOINT,ACCESS_KEY_ID,ACCESS_KEY_SECRET); //获取文件名 String filename = file.getOriginalFilename(); //截取后缀 String suffx = filename.substring(filename.lastIndexOf(".")); //获取文件名称 String newFileName= UUID.randomUUID()+suffx; inputStream = file.getInputStream(); ossClient.putObject(BACKET_NAME,FOLDER+newFileName,inputStream); map.put("filePath",URl+FOLDER+newFileName); } catch (Exception e) { e.printStackTrace(); }finally { if(inputStream!=null){ try { inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } if(ossClient!=null){ ossClient.shutdown(); } } return map; }}
App.Vue页面:
新增 批量删除 { { scope.$index+1}} ![]()
删除 编辑 ![]()
新增 修改 取消
其中img是自己定义的,数据库没有这个字段
@Override @Override public void updateDrug(Drug drug) { //判断新图片和老图片都不为null if(StringUtils.isNotBlank(drug.getImg()) && StringUtils.isNotBlank(drug.getPhoto()) && !drug.getImg().equals(drug.getPhoto())){ //删除老图片 OSSUtil.deleteFile(drug.getImg()); } drugMapper.updateById(drug); }
其中OSSUtil是自己写的工具类:
public class OSSUtil { // 阿里云oss上传文件相关属性值 // 阿里云API的外网域名 public static final String ENDPOINT = "oss-cn-beijing.aliyuncs.com"; // 阿里云API的密钥 public static final String ACCESS_KEY_ID = "LTAI4Fzm3c6EmUexCHLvZNcm"; // 阿里云API的密钥Access Key Secret public static final String ACCESS_KEY_SECRET = "b8OrjTpYWW3sZSlimy4sxr2WJuNX09"; // 阿里云API的bucket名称 public static final String BACKET_NAME = "jjjqqq"; // 阿里云API的文件夹名称 public static final String FOLDER = "photo/"; public static final String URl = "https://jjjqqq.oss-cn-beijing.aliyuncs.com/"; public static void deleteFile(String fileName){ OSSClient ossClient = new OSSClient(ENDPOINT,ACCESS_KEY_ID,ACCESS_KEY_SECRET); //给fileName重新赋值 String replace = fileName.replace(URl, ""); //删除 ossClient.deleteObject(BACKET_NAME,replace); ossClient.shutdown(); }}
转载地址:http://jpljz.baihongyu.com/