思路是先在表单中提交数据和图片,然后给图片创建一个实际的本地路径,然后用这个路径将图片上传到七牛云储存,上传成功后从七牛云返回文件名,将这个文件名存入数据库中。然后读取图片时只需用http://+域名/+文件名就可以成功取到图片。下面给出代码(从项目中抠出来的,可能不完整,但是思路肯定完整)
引入七牛云的依赖:
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>7.2.0</version>
</dependency>
application.properties配置:
这里的ak和sk,在你七牛云账户的密匙管理里面可以看到,bucket是你的对象储存空间名,path是七牛云分配的域名。
#七牛云配置
qiniu.accessKey=01DnQx9eSgMO0vfp00O0tao8A1lynlnT2O8Koodt
qiniu.secretKey=hcfyRnCoeZEeNQAJsKSDiDsv2rnR_YOI_-0kkjiB
qiniu.bucket=blog_album
qiniu.path=http://poag7m5q9.bkt.clouddn.com
配置类:
package com.lingfei.admin.config;
import com.google.gson.Gson;
import com.lingfei.admin.utils.QiniuUtil;
import com.qiniu.common.Zone;
import com.qiniu.storage.BucketManager;
import com.qiniu.storage.UploadManager;
import com.qiniu.util.Auth;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.autoconfigure.web.servlet.MultipartProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.multipart.MultipartResolver;
import org.springframework.web.multipart.support.StandardServletMultipartResolver;
import org.springframework.web.servlet.DispatcherServlet;
import javax.servlet.MultipartConfigElement;
import javax.servlet.Servlet;
/**
* @author www.xyjz123.xyz
* @date 2019/3/28 15:41
*/
@Configuration
@ConditionalOnClass({Servlet.class, StandardServletMultipartRes