ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

api 使用七牛上传图片

2020-05-27 14:08:57  阅读:252  来源: 互联网

标签:String com qiniu System 七牛 api new import 上传


 

1.引入依赖

        <dependency>
            <groupId>com.qiniu</groupId>
            <artifactId>qiniu-java-sdk</artifactId>
            <version>[7.2.0, 7.2.99]</version>
        </dependency>

2.创建工具类

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

import java.io.*;
import java.util.Calendar;


public class Base64Util {

    /***
     * * 图片转BASE64
     * @param imagePath 路径
     * @return
     * */
    public static String imageChangeBase64(String imagePath){
        InputStream inputStream = null;
        byte[] data = null;
        try {
            inputStream = new FileInputStream(imagePath);
            data = new byte[inputStream.available()];
            inputStream.read(data);
            inputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        // 加密
        BASE64Encoder encoder = new BASE64Encoder();
        return encoder.encode(data);
    }



    /**
     * BASE转图片
     * @param baseStr  base64字符串
     * @param imagePath 生成的图片
     * @return
     */
    public static boolean base64ChangeImage(String baseStr,String imagePath){
        if (baseStr == null){
            return false;
        }
        BASE64Decoder decoder = new BASE64Decoder();
        try {
            // 解密
            byte[] b = decoder.decodeBuffer(baseStr);
            // 处理数据
            for (int i = 0; i < b.length; ++i) {
                if (b[i] < 0) {
                    b[i] += 256;
                }
            }
            OutputStream out = new FileOutputStream(imagePath);
            out.write(b);
            out.flush();
            out.close();
            return true;
        } catch (Exception e) {
            return false;
        }
    }


    public static void DemoQiNiuUploadFile()
    {
        String Path = System.getProperty("user.dir");
        System.out.println("Path:" + Path);

        //加密
        String basestr = imageChangeBase64(Path + "//1.jpeg");
        System.out.println(basestr);
        //解密

        base64ChangeImage(basestr,Path + "//HeadTemp.jpeg");

        long SS = Calendar.getInstance().getTimeInMillis();
        String UploadFile = QiniuyunTools.UploadData(Path + "//HeadTemp.jpeg","123-" + SS);
        System.out.println("UploadFile:" + UploadFile);
    }



}
import com.google.gson.Gson;
import com.qiniu.common.QiniuException;
import com.qiniu.common.Zone;
import com.qiniu.http.Response;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.model.DefaultPutRet;
import com.qiniu.util.Auth;

public class QiniuyunTools {

    public static String UploadData(String FileName,String mobilephone) {

        //构造一个带指定Zone对象的配置类
        Configuration cfg = new Configuration(Zone.zone0());
        //...其他参数参考类注释
        UploadManager uploadManager = new UploadManager(cfg);
        //...生成上传凭证,然后准备上传
        String accessKey = "RMILAnj3-XHGvN8SSihaDX08AI-vUwFmjhjty6bt"; // RMILAnj3-XHGvN8SSihaDX08AI-vUwFmjhjty6bt
        String secretKey = "MWbZQtik-noIS-c0wJcV1Fvr1ABC-ta-2-G5qmV9"; // MWbZQtik-noIS-c0wJcV1Fvr1ABC-ta-2-G5qmV9
        String bucket = "bucket-o2opda";
        //如果是Windows情况下,格式是 D:\\qiniu\\test.png
        String localFilePath =  FileName ; //"/home/qiniu/test.png";
        //默认不指定key的情况下,以文件内容的hash值作为文件名
        String key = mobilephone + ".jpeg";
        Auth auth = Auth.create(accessKey, secretKey);
        String upToken = auth.uploadToken(bucket);
        try {
            Response response = uploadManager.put(localFilePath, key, upToken);
            //解析上传成功的结果
            DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
            System.out.println(putRet.key);
            System.out.println(putRet.hash);
            // http://pgu63g1wb.bkt.clouddn.com
            return "http://apppda.easytoline.com/" + putRet.key;
        } catch (QiniuException ex) {
            Response r = ex.response;
            System.err.println(r.toString());
            try {
                System.err.println(r.bodyString());
            } catch (QiniuException ex2) {
                //ignore
            }
            return "";
        }
    }

    public static String UploadDataSinger(String FileName,String mobilephone) {

        //构造一个带指定Zone对象的配置类
        Configuration cfg = new Configuration(Zone.zone0());
        //...其他参数参考类注释
        UploadManager uploadManager = new UploadManager(cfg);
        //...生成上传凭证,然后准备上传  从七牛获取
        String accessKey = "*****-XHGvN8SSihaDX08AI-vUwFmjhjty6bt"; 
        String secretKey = "*****-noIS-c0wJcV1Fvr1ABC-ta-2-G5qmV9"; 
        String bucket = "bucket-o2oqianshou";
        //如果是Windows情况下,格式是 D:\\qiniu\\test.png
        String localFilePath =  FileName ; //"/home/qiniu/test.png";
        //默认不指定key的情况下,以文件内容的hash值作为文件名
        String key = mobilephone + ".jpeg";
        Auth auth = Auth.create(accessKey, secretKey);
        String upToken = auth.uploadToken(bucket);
        try {
            Response response = uploadManager.put(localFilePath, key, upToken);
            //解析上传成功的结果
            DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
            System.out.println(putRet.key);
            System.out.println(putRet.hash);
            //http://pgu65veb2.bkt.clouddn.com
            return "http://apppdaqs.easytoline.com/" + putRet.key;
        } catch (QiniuException ex) {
            Response r = ex.response;
            System.err.println(r.toString());
            try {
                System.err.println(r.bodyString());
            } catch (QiniuException ex2) {
                //ignore
            }
            return "";
        }
    }
}

 

3.使用base64字符串接口图片 (这是只是用的base64方式而已)

           String singPicUrl="";
            if(Receive.getSignPhoto()!=null && !Receive.getSignPhoto().equals("")) {
                String Path = System.getProperty("user.dir");
                //解密数据
                base64ChangeImage(Receive.getSignPhoto(), Path + "//HandsetSingerTemp.jpeg");
                //时间戳
                long ts = Calendar.getInstance().getTimeInMillis();
                //上传七牛云
                singPicUrl = QiniuyunTools.UploadDataSinger(Path + "//HandsetHeadSinger.jpeg", Receive.getUserID() + Receive.getWaybillList() + ts);
            }

完成

标签:String,com,qiniu,System,七牛,api,new,import,上传
来源: https://www.cnblogs.com/zhangxuetao/p/12972542.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有