第一步
在application.properties文件配置如下:
# 上传文件总的最大值
spring.servlet.multipart.max-request-size=20MB
# 单个文件的最大值
spring.servlet.multipart.max-file-size=2MB
qiniu.accessKey=这里填上你的七牛云
keyqiniu.accessSecretKey=这里填上你的七牛云key
spring.servlet.multipart.max-request-size=20MB
# 单个文件的最大值
spring.servlet.multipart.max-file-size=2MB
qiniu.accessKey=这里填上你的七牛云
keyqiniu.accessSecretKey=这里填上你的七牛云key
第二步
直接复制粘贴下面定制好的工具类:这里有两个地方需要注意,给你标出来了。①和②
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.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; @Component public class QiniuUtils { //这里填你的域名,注意带s和不带s的区别 public static final String url = "https://cdn.uuzkz.com/"; @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.huanan());//①注意,这里填你的存储空间所在地区 //...其他参数参考类注释 UploadManager uploadManager = new UploadManager(cfg); //...生成上传凭证,然后准备上传 String bucket = "mystore";//②注意,这里填你的存储空间名 //默认不指定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; } }
第三步
在自定义控制器Controller中使用:
@RestController @RequestMapping("upload") public class UploadController { @Autowired private QiniuUtils qiniuUtils; @RequestMapping public Result upload(@RequestParam("image") MultipartFile file){ //获取文件原名称 String originalFilename = file.getOriginalFilename(); //新文件名称 String fileName = UUID.randomUUID().toString()+"."+ StringUtils.substringAfterLast(originalFilename,"."); System.out.println("==========fileName:"+fileName); //调用工具类上传 boolean upload = qiniuUtils.upload(file, fileName); if (upload){ return Result.success(QiniuUtils.url+fileName); } return Result.fail(ErrorCode.UPLOAD_FAIL.getCode(),ErrorCode.UPLOAD_FAIL.getMsg()); } }
文章评论