前段时间做个人中心页面时,添加了头像上传功能,当时使用的是七牛的云存储,个人感觉还不错。所以就总结一下Android使用七牛云存储的图片上传,具体的图片选择过程可参见我的另一篇文章Android之图片选择与裁剪,今天我们重点要说的是七牛的图片上传功能。

在AndroidManifest.xml中添加访问存储卡和网络的权限:

 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  • 1
  • 2
  • 1
  • 2

添加图片上传所需要的jar包(这一点比较坑,记得当时官网上下载的不能用)

下载: 七牛图片上传需要的Jar包

代码实现:

在需要图片上传的地方调用下面的方法:

/** * 上传图片到七牛 * @param filePath 要上传的图片路径 * @param token 在七牛官网上注册的token */private void uploadImageToQiniu(String filePath, String token) {    UploadManager uploadManager = new UploadManager();    // 设置图片名字    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");    String key = "icon_" + sdf.format(new Date());    uploadManager.put(filePath, key, token, new UpCompletionHandler() {        @Override        public void complete(String key, ResponseInfo info, JSONObject res) {            // info.error中包含了错误信息,可打印调试            // 上传成功后将key值上传到自己的服务器        }    }, null);}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

需要注意的是,不要再客户端直接引用token,否则可能导致token泄漏,造成不必要的损失。

正确的图片上传流程:

  1. 访问自己的服务器获取token;
  2. 使用获取的token上传图片到七牛;
  3. 从七牛获取上传后的图片的存储路径(也就是complete方法中的key参数),再上传到自己的服务器进行存储,至此图片上传才算完成。

更多相关文章

  1. Android网络图片请求+二级缓存实现
  2. Android图片加载库:最全面的Picasso讲解
  3. ImageSwitcher的应用
  4. Canvas和Drawable
  5. Android中GridView的使用——使用自带的SimpleAdapter(简单适配
  6. Android(安卓)绘制圆形图片
  7. Android中仿微信选择图片并展示在RecyclerView中
  8. Android(安卓)Glide扩展实现图片加载进度条
  9. android 9.png图片详解

随机推荐

  1. Android单元测试之Local unit tests(下)
  2. Android项目开发一
  3. android 仿QQ手机版
  4. ConstraintLayout (约束布局)属性详情
  5. android 将图片通过base64转换为String
  6. android:visibility属性
  7. Android虚拟机大屏幕设置(开发平板电脑程
  8. running Android Studio on Windows 7 fa
  9. Android之动画效果编程基础
  10. android studio每次启动都要在fetching A