base64编码上传七牛云

官方文档: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.com

    RequestBody 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(“上传失败”);
    }
    }
    }

本文仅作交流学习,希望以后有所帮助

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值