七牛云的简单实用(上传图片到云存储并拿到地址写入数据库)

最近项目要有修改头像的功能,图片是不能写进数据库,而只能写进图片的地址,这就要把图片传到云存储上,再返回一个地址写进数据库,下次读取数据库图片地址,加载图片。
本次项目用上了七牛云存储,就复习一下七牛云的简单用法(本次开发客户端用Android Studio开发,服务端用Eclipse开发):
1.依赖
Android Studio:compile 'com.qiniu:qiniu-android-sdk:7.2.2'
Eclipse:七牛云官网下SDK 的jar包;
七牛云的简单实用(上传图片到云存储并拿到地址写入数据库)_第1张图片

2.1服务端相应代码:
拿到秘钥:
步骤:注册->建存储空间->个人面板->秘钥管理七牛云的简单实用(上传图片到云存储并拿到地址写入数据库)_第2张图片

//七牛秘钥
        String accessKey="3vsRBfibN9HZq8IE-ZVFl746TBLx0zb18s1Cx";
        String secretKey="_ubCRKktpqRCaTpP-gZYlUd4_sv56CK_pObBC";
//传给客户端token,其中abcdefklmn为空间名
case "QINIUYUN":
            Auth auth=Auth.create(accessKey, secretKey);
            String token=auth.uploadToken("abcdefklmn");
            pw.write(token);
            System.out.println("token:"+token);
            pw.close();
            break;

2.2客户端请求(本工程采用xUtil3框架做网络请求):

//把图片传到服务端
    private void setPicFromClient() {
        RequestParams params = new RequestParams(url);
        params.addQueryStringParameter("flag", "QINIUYUN");
        x.http().get(params, new Callback.CommonCallback() {

            @Override
            public void onSuccess(String result) {
                //七牛云的请求方式
                UploadManager manager = new UploadManager();
                //new一个线程,继承七牛云的UpCompletionHandler
                MyUpCompletionHandler handler = new MyUpCompletionHandler();
                Date date = new Date();
                String key = date.getTime() + mSaveUri.toString();
                manager.put(file, key, result, handler, null);

            }

            @Override
            public void onError(Throwable ex, boolean isOnCallback) {


            }

            @Override
            public void onCancelled(CancelledException cex) {

            }

            @Override
            public void onFinished() {

            }
        });


    }

    class MyUpCompletionHandler implements UpCompletionHandler {

        //上传成功
        @Override
        public void complete(String key, ResponseInfo info, JSONObject response) {

            //上传成功,返回一个key值,要存入数据库,必须要加上存储的测试域名
            value=key1+key;
            RequestParams params=new RequestParams(url);
            params.addQueryStringParameter("flag","5");
            params.addQueryStringParameter("id",id+"");
            params.addQueryStringParameter("key",value);
            x.http().get(params, new Callback.CommonCallback() {

                @Override
                public void onSuccess(String result) {

                }

                @Override
                public void onError(Throwable ex, boolean isOnCallback) {

                }

                @Override
                public void onCancelled(CancelledException cex) {

                }

                @Override
                public void onFinished() {

                }
            });

        }
    }

测试域名:
七牛云的简单实用(上传图片到云存储并拿到地址写入数据库)_第3张图片

你可能感兴趣的:(android,云存储,数据库,云存储,七牛云)