1.controller 接口
@postMapping public Result upload(@RequestParam("image") MultpartFile file){ //使用@RequestParam:要指明前端传过来的参数名并与其对应 //使用@RequestBody:直接对象接收,属性名要与前端传过来的数据的key值对应 //原始文件名称 比如说aa.png String originalFilename = file.getOriginalFilename(); //唯一的文件名称 String fileName = UUID.randomUUID().toString()+"."+StringUtils.substringAfterLast(originalFilename, "."); //这个后边使用的方法是取原文件后边的类型 eg:jpg mp3 //上传文件上传到那里呢? 七牛云 云服务器 //降低我们自身应用服务器的带宽消耗 boolean upload = qiniuUtils.upload(file, fileName); if (upload) { return Result.success(QiniuUtils.url+fileName); } return Result.fail(20001,"上传失败"); }
2.导包七牛云
com.qiniu qiniu-java-sdk[7.7.0, 7.7.99]
3.注意七牛云测试域名 https://static.mszlu.com/ 一个月一回收,记得去修改。
springboot默认只上传1M的图片大小所以修改文件配置
# 上传文件总的最大值 spring.servlet.multipart.max-request-size=20MB # 单个文件的最大值 spring.servlet.multipart.max-file-size=2MB
4.工具类(提供的直接cv)
package com.mszlu.blog.utils; import com.alibaba.fastjson.JSON; import com.qiniu.http.Response; import com.qiniu.storage.Configuration; import com.qiniu.storage.Region; import com.qiniu.storage.UploadManager; import com.qiniu.storage.model.DefaultPutRet; import com.qiniu.util.Auth; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; @Component public class QiniuUtils { public static final String url = "https://static.mszlu.com/"; //修改以下两个值放到proprietarties中,在密钥管理中获取 @Value("${qiniu.accessKey}") private String accessKey; @Value("${qiniu.accessSecretKey}") private String accessSecretKey; public boolean upload(MultipartFile file,String fileName){ //构造一个带指定 Region 对象的配置类 Configuration cfg = new Configuration(Region.huabei()); //...其他参数参考类注释 UploadManager uploadManager = new UploadManager(cfg); //...生成上传凭证,然后准备上传,修改上传名称为自己创立空间的空间名称(是你自己的) String bucket = "mszlu"; //默认不指定key的情况下,以文件内容的hash值作为文件名 try { byte[] uploadBytes = file.getBytes(); Auth auth = Auth.create(accessKey, accessSecretKey); String upToken = auth.uploadToken(bucket); Response response = uploadManager.put(uploadBytes, fileName, upToken); //解析上传成功的结果 DefaultPutRet putRet = JSON.parseObject(response.bodyString(), DefaultPutRet.class); return true; } catch (Exception ex) { ex.printStackTrace(); } return false; } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)