Java如何上传base64编码图片到七牛云

在实际的开发中我们经常需要将图片上传到第三方,因为如果把图片全都存放在项目路径下,会导致项目越来越臃肿,这里我以七牛云为例,讲解一下Java如何将图片上传到七牛云。

首先,我们要先导入pom依赖:


	com.qiniu
	qiniu-java-sdk
	7.1.1

然后就是Java :
这里需要主义的地方就是域名链接,如果域名链接部队的话是无法上传到你的云空间的,点击这里复制你所在地区的域名链接

import java.io.File;
import java.io.FileInputStream;
import com.qiniu.util.*;
import okhttp3.*;
public class put64 {
    String ak = "";
    String sk = "";    // 密钥配置
    Auth auth = Auth.create(ak, sk);    // TODO Auto-generated constructor stub 
    String bucketname = "";    //空间名
    String key = "";    //上传的图片名
    public String getUpToken() {        
        return auth.uploadToken(bucketname, null, 3600, new StringMap().put("insertOnly", 1));
    }    
    public void put64image() throws Exception {
        String file = "D:\\E\\3a9384fd577f6a9a0acdee0a3b79fb2e.jpg";//图片路径
        //这里改成你的图片存储的路径
        FileInputStream fis = null;        
        int l = (int) (new File(file).length());        
        byte[] src = new byte[l];
        fis = new FileInputStream(new File(file));
        fis.read(src);
        String file64 = Base64.encodeToString(src, 0);
        String url = "http://up-z1.qiniup.com/putb64/" + l+"/key/"+ UrlSafeBase64.encodeToString(key);      
    	//http://up-z1.qiniup.com是华北地区的域名链接
        RequestBody rb = RequestBody.create(null, file64);
        Request request = new Request.Builder().
                url(url).
                addHeader("Content-Type", "application/octet-stream")
                .addHeader("Authorization", "UpToken " + getUpToken())
                .post(rb).build();
        System.out.println(request.headers());
        OkHttpClient client = new OkHttpClient();
        okhttp3.Response response = client.newCall(request).execute();
        System.out.println(response);
    }   
     public static void main(String[] args) throws Exception {   
          new put64().put64image();
    }
}

密钥配置在你七牛云个人中心里的密钥管理里面就可以查看

你可能感兴趣的:(千牛云,云,java,java,http,base64)