官方文档:https://developer.qiniu.com/kodo/kb/1326/how-to-upload-photos-to-seven-niuyun-base64-code,
java后台上传图片方式采用读取照片并编码后上传
本次主要实现base64编码上传
/**
- 七牛token
- @return
*/
public JSONObject getQiNiuToKen() {
String accessKey = “xxxxxxxxxxxxxxxxx”;
String secretKey = “xxxxxxxxxxxxxxxxxxx”;
String bucket = “xxxxxx”;
Auth auth = Auth.create(accessKey, secretKey);
String upToken = auth.uploadToken(bucket);
JSONObject json = new JSONObject();
json.put(“uptoken”, upToken);
return json;
}
生成base64编码
public byte[] getWxacode(String scene,String path){
Map<String,Object> param = new HashMap<String,Object>();
param.put(“scene”, scene);
param.put(“page”, path);
param.put(“width”, width);
param.put(“auto_color”, false);
Map<String,Object> line_color = new HashMap<>();
line_color.put(“r”, 0);
line_color.put(“g”, 0);
line_color.put(“b”, 0);
param.put(“line_color”, line_color);
RestTemplate rest = new RestTemplate();
try {
MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
HttpEntity requestEntity = new HttpEntity(JSON.toJSONString(param), headers);
ResponseEntity<byte[]> entity = rest.exchange(CODE_ULR+"?access_token="+accessToken, HttpMethod.POST, requestEntity, byte[].class, new Object[0]);
byte[] result = entity.getBody();
return result;
} catch (Exception e) {
// logger.info(e.getMessage());
}finally {
}
return null;
}
/**
-
base64上传并返回uuid
-
@param base64
-
@return
-
@throws IOException
*/
public Object getBase64ToString(byte[] base64) {
JSONObject json = getQiNiuToKen();
String uuid = UUID.randomUUID().toString().replaceAll("-", “”);
String upToken = json.getString(“uptoken”);
String file64 = com.qiniu.util.Base64.encodeToString(base64, 0);
String url = “https://upload-z2.qiniup.com/putb64/” + base64.length + “/key/” + UrlSafeBase64.encodeToString(uuid);
//非华东空间需要根据注意事项 1 修改上传域名 华南域名用upload-z2.qiniup.comRequestBody rb = RequestBody.create(null, file64);
Request request = new Request.Builder().
url(url).
addHeader(“Content-Type”, “application/octet-stream”)
.addHeader(“Authorization”, "UpToken " + upToken)
.post(rb).build();
//System.out.println(request.headers());
OkHttpClient client = new OkHttpClient();
okhttp3.Response response = null;
try {
response = client.newCall(request).execute();
System.out.println(response);
} catch (Exception e) {
ResultMsg.Error(“错误信息” + e);
} finally {
if (response.code() == 200) {
return uuid;
} else {
return ResultMsg.Error(“上传失败”);
}
}
}
本文仅作交流学习,希望以后有所帮助