七牛图片上传业务流程如下图(这是官方的图):
由上图可知,要想实现图片上传,是要三端进行交互的(我刚刚开始以为只要七牛服务器跟客户端交互就行)
接下来步骤如下:
1、首先肯定是要有一个七牛的账号,并创建一个空间
2、客户端向业务服务器(也就是客户端的应用服务器)发请求你要上传多上张图片
3、业务服务器根据客户端的请求向七牛云存储生成token(应用的服务器下载好相应的七牛sdk然后根据接口文档所述向七牛服务器请求token,token相当于一把钥匙,具体代码我也不知道怎么实现,毕竟我不是写后台的,官方接口文档上有。)
4、客户端接收到业务服务器返回的token后就可以进行上传。(一般无论你请求上传多少张图片,服务器都会返回多个一模一样的token,也就是说token可以一直用的)
上传部分代码如下:
UploadManager uploadManager = new UploadManager(); uploadManager.put(path, key, qiniuToken, new UpCompletionHandler() { @Override public void complete(String key, ResponseInfo info, JSONObject response) {
if (info.isOK()) {
ToastHelper.showNewToast(context, "图片上传成功");
}
}
其中path是指的是你本地文件的路径,key是指的是你上传到七牛服务器的文件名(你也可以在文件名那里拼出文件夹路径),qiniuToken指的就是业务服务器返回的token。
如果上传成功,就用"info.isOK()"判断就行。
注意:七牛sdk只支持的是单图上传,如果要实现多图上传,就要自己写。(我之前写的就是,每上传一张图就开一个线程,然后塞进队列里面。然后一个个start就行)
还有就是,七牛上的官方sdk导入进工程里面是不能依赖的,我试过很多次都不行。后来我找一位大牛要了一份可以下的,地址如下:http://download.csdn.net/download/u013560890/8563117