springboot实现图片上传到又拍云中,并且保存图片外连接路径到数据库,外连接也可访问图片(二)

  1. springboot实现图片上传到又拍云中,外连接也可访问图片前提准备请见springboot实现图片上传到又拍云中,外连接也可访问图片(一)
  2. 主要代码讲解
@PostMapping("/uploadImg")
    public Result uploadImg(MultipartFile file,Integer userId) throws IOException, UpException {
        UpYun upYun = new UpYun("job-imags", "dream", "GoANPm05VpUcsl4MpG9fL4PFVSBoxdH3");
        String filename = file.getOriginalFilename()+UUID.randomUUID().toString()+".jpg";
        System.out.println("图片名称:"+filename);
        boolean re = upYun.writeFile(filename,file.getBytes(),false);
        Integer a=usersService.addImgPath("http://job-imags.test.upcdn.net/"+filename,userId);
        return Result.success(re);
    }

  • [1] Upyun是又拍云的jar,引入即可。
  • [2]UpYun(参数1,参数2,参数3)方法传递到三个参数,参数1:你创建的服务名称;参数二:你创建的操作员名称;参数三:你创建操作员生成的密码。
  UpYun upYun = new UpYun("job-imags", "dream", "GoANPm05VpUcsl4MpG9fL4PFVSBoxdH3");
  • [3] fileName是图片名字,为了防止图片名字重复造成的图片覆盖问题,使用UUID生成。图片名字后缀写死.的.jpg格式。想要任何格式可以解析上传文件的后缀。这个自行百度。
 String filename = file.getOriginalFilename()+UUID.randomUUID().toString()+".jpg";
  • [4] 上传的关键,就一行代码,upYun.writeFile(参数1,参数2,参数3)返回布尔类型,参数1:图片名字;参数2:图片;参数3:是否能创建目录,true为可以,false为不可以。
boolean re = upYun.writeFile(filename,file.getBytes(),false);
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
要将图片上传到腾讯云OSS,你需要进行以下步骤: 1. 在腾讯云中创建一个对象存储桶(Bucket)。 2. 在uniapp中安装并引入腾讯云OSS SDK。 3. 编写上传代码,包括以下步骤: - 获取上传凭证:在腾讯云中创建一个临时的密钥,用于上传图片。 - 创建上传任务:使用SDK提供的uploadObject方法,将图片进行上传。 - 监听上传进度:可以使用SDK提供的progress方法,获取上传进度信息。 这是一个示例代码,可以帮助你更好地理解上传图片到腾讯云OSS的过程: ```javascript import COS from "cos-wx-sdk-v5"; const cos = new COS({ getAuthorization: async function (options, callback) { try { // 获取上传凭证 const res = await uni.request({ url: "上传凭证接口", method: "GET", }); const { credentials } = res.data; callback({ TmpSecretId: credentials.tmpSecretId, TmpSecretKey: credentials.tmpSecretKey, SecurityToken: credentials.sessionToken, StartTime: credentials.startTime, ExpiredTime: credentials.expiredTime, }); } catch (err) { console.log(err); } }, }); export default { methods: { async uploadFile(file, fileName) { try { // 创建上传任务 const res = await new Promise((resolve, reject) => { cos.uploadObject( { Bucket: "你的Bucket名称", Region: "你的Bucket所在地域", Key: fileName, FilePath: file.path, }, function (err, data) { if (err) { reject(err); } else { resolve(data); } } ).on("progress", function (info) { console.log(info.percent * 100 + "%"); }); }); console.log(res); } catch (err) { console.log(err); } }, }, }; ``` 这段代码中,首先引入了腾讯云OSS SDK,并创建了一个COS实例。在上传文件的方法中,首先调用了 `getAuthorization` 方法获取上传凭证,然后使用 `cos.uploadObject` 方法创建上传任务。同时,也可以使用 `on` 方法监听上传进度,以便实时更新上传进度。最后,上传完成后,会返回上传成功的信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XuDream

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值