1. 程式人生 > >InputStream輸入流七牛上傳圖片

InputStream輸入流七牛上傳圖片

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