InputStream输入流七牛上传图片
流程
导入七牛Maven jar包
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>7.2.11</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>happy-dns-java</artifactId>
<version>0.1.4</version>
<scope>compile</scope>
</dependency>
直接调用配置类以及上传类,获取返回文件名字
配置类
public class QIniu {
//七牛相关配置信息(本人是通过读取yaml配置文件读取七牛配置参数)
public static final String QINIU_DOMAIN=AllConfig.getAllConfig().get("QINIU_DOMAIN_IMAGE").toString();
public static final String QINIU_BASE_URL = AllConfig.getAllConfig().get("QINIU_BASE_URL_IMAGE").toString();
public static final String QINIU_AK = AllConfig.getAllConfig().get("QINIU_AK").toString();
public static final String QINIU_SK = AllConfig.getAllConfig().get("QINIU_SK").toString();
}
上传类
/**
* 图片访问的外链
* @author Jian
*
*/
public class QiniuUpload {
public String uploadImgImputStream(InputStream itm,String key) {
Configuration cfg = new Configuration(Zone.zone2());
//...其他参数参考类注释
UploadManager uploadManager = new UploadManager(cfg);
String upToken=getUpTokens();
try {
Response response = uploadManager.put(itm,key,upToken,null, null);
//解析上传成功的结果
DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
return putRet.key;
} catch (QiniuException ex) {
Response r = ex.response;
System.out.println(r.toString());
try {
System.out.println(r.bodyString());
} catch (QiniuException ex2) {
//ignore
}
}
return null;
}
/**
* 获取签名
* @author Jian
*
*/
public String getUpTokens() {
Auth auth = Auth.create(QIniu.QINIU_AK, QIniu.QINIU_SK);
return auth.uploadToken(QIniu.QINIU_DOMAIN);
}
demo
/**
* 路径:拼接QINIU_BASE_URL
* QIniu.QINIU_BASE_URL+返回名字
* JsonResult只是本人自定义的数据类
* @author Jian
*
*/
public JsonResult<Void> upload(HttpServletRequest request,HttpServletResponse response,@RequestParam("file") MultipartFile file) throws IOException {
//转换成流
InputStream is = file.getInputStream();
JsonResult<Void>jr=new JsonResult<Void>();
String fileName = String.valueOf(System.currentTimeMillis());
QiniuUpload qiniu = new QiniuUpload();
//调用上传类上传
String f= qiniu.uploadImgImputStream(is,fileName);
if(!f.isEmpty()) {
jr.setData(QIniu.QINIU_BASE_URL+f);
jr.setState(1);
}
return jr;
}
笔记demo