写在前边

  • 现在的时间:2019-06-23
  • 怎样获得一个七牛云的存储空间就不写了,重点是怎么上传图片.

准备工作-处理权限

网络权限

  • 添加访问网络权限

    <uses-permission android:name="android.permission.INTERNET"/>
    
  • 设置允许发送http请求,否则android默认不允许发送http请求:在清单文件application标签上添加android:usesCleartextTraffic="true"

读取文件权限

  • 添加读取系统文件权限

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    
  • 因为是危险权限,还要作动态申请.
    private void getPer()
    {int permission = ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE);if (permission != PackageManager.PERMISSION_GRANTED){// 请求权限ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);}
    }
    

准备工作-获取七牛云相关的东西

获取AK与SK

获取要上传到的空间(bucket)

添加依赖

implementation 'com.qiniu:qiniu-android-sdk:7.3.15'
implementation 'com.qiniu:qiniu-java-sdk:7.2.+'

依赖主页:https://developer.qiniu.com/kodo/sdk/1236/android      https://github.com/qiniu/java-sdk

上传图片

protected void uploadPic()
{//指定zone的具体区域//FixedZone.zone0   华东机房//FixedZone.zone1   华北机房//FixedZone.zone2   华南机房//FixedZone.zoneNa0 北美机房/*Configuration config = new Configuration.Builder().chunkSize(512 * 1024)        // 分片上传时,每片的大小。 默认256K.putThreshhold(1024 * 1024)   // 启用分片上传阀值。默认512K.connectTimeout(10)           // 链接超时。默认10秒.useHttps(true)               // 是否使用https 默认是false.responseTimeout(60)          // 服务器响应超时。默认60秒.recorder(recorder)           // recorder分片上传时,已上传片记录器。默认null.recorder(recorder, keyGen)   // keyGen 分片上传时,生成标识符,用于片记录器区分是那个文件的上传记录.zone(FixedZone.zone0)        // 设置区域,指定不同区域的上传域名、备用域名、备用IP。*/Configuration config = new Configuration.Builder().useHttps(true)               // 是否使用https上传域名.zone(FixedZone.zone0)        // 设置区域,指定不同区域的上传域名、备用域名、备用IP。.build();UploadManager uploadManager = new UploadManager(config); // UploadManager对象只需要创建一次重复使用String data = "/storage/emulated/0/DCIM/Camera/IMG_20190623_172115.jpg"; //要上传的文件String key = "test.jpg"; //在服务器的文件名/*** 生成token* create()方法的两个参数分别是 AK SK* uoloadToken()方法的参数是 要上传到的空间(bucket)*/String token = Auth.create("kzdlPdSfFXp_Jgj32wlk5ef4r_Y171smSEyzYpX1", "SQ7MwgAQbsT1Sp-RwFg5iqK3m8vUU4fhCgvuEkIb").uploadToken("liyanxing-pic-server");/*** 调用put方法上传* 第一个参数 data:可以是字符串,是要上传图片的路径*                可以是File对象,是要上传的文件*                可以是byte[]数组,要是上传的数据* 第二个参数 key:字符串,是图片在服务器上的名称,要具有唯一性,可以用UUID* 第三个参数 token:根据开发者的 AK和SK 生成的token,这个token 应该在后端提供一个接口,然后android代码中发一个get请求获得这个tocken,但这里为了演示,直接写在本地了.* 第四个参数:UpCompletionHandler的实例,有个回调方法* 第五个参数:可先参数*/uploadManager.put(data, key, token,new UpCompletionHandler(){/*** 回调方法* @param key 开发者设置的 key 也就是文件名* @param info 日志,包含上传的ip等* @param res 包括一个hash值和key*/@Overridepublic void complete(String key, ResponseInfo info, JSONObject res){if(info.isOK()){Log.i("上传结果:", "Upload Success");}else{Log.i("上传结果:", "Upload Fail");//如果失败,这里可以把info信息上报自己的服务器,便于后面分析上传错误原因}Log.i("key:", key + "\ninfo:" + info + "\nres:" + res);}},null);
}

Android上传图片到七牛云相关推荐

  1. android七牛云存储,Android上传图片到七牛云

    protected void uploadPic() { //指定zone的具体区域 //FixedZone.zone0 华东机房 //FixedZone.zone1 华北机房 //FixedZone ...

  2. 前端上传图片到七牛云

    前端如何上传图片到七牛云 流程: 1.七牛云后台的对象存储功能 2.node.js后台生成七牛云的token 3.前端利用element UI/ice 的upload组件 4.文件名和token作为参 ...

  3. uni-app 上传图片到七牛云

    uni-app 上传图片到七牛云 我的流程是:在上传图片到七牛之前,先调后端提供的接口获取token.key等,然后通过uni.uploadFile把token.key传给七牛: token:从后端获 ...

  4. React中:富文本编辑器(react-quill),自定义上传图片到七牛云

    1.组件封装 import React, { useState, useEffect, useRef } from 'react'; import ReactQuill from 'react-qui ...

  5. 七牛云 上传图片到七牛云并返回图片URL

    七牛云 上传图片到七牛云并返回图片URL 鸣谢'追逐盛夏流年':https://blog.csdn.net/j1231230/article/details/80061834 在开发项目的时候,经常会 ...

  6. 实现Java+Vue上传图片到七牛云和从七牛云删除图片

    环境准备 开发环境 后端: JDK1.8, SpringBoot2.2.2.RELEASE, Maven3.6.3 前端: vue-element-admin4.4.0 相关链接 七牛云JavaSDK ...

  7. 小程序上传图片到七牛云

                                  小程序上传图片到七牛云 一.创建七牛云账号,获取ak.sk,创建对象存储空间名称 二.服务端接口获取七牛token值,个人使用的php编写的 ...

  8. 前端如何上传图片到七牛云

    From: https://www.jianshu.com/p/7520e0bee777 前端如何上传图片到七牛云 流程: 生成token => token和图片作为new FromData() ...

  9. html5七牛图片上传js,前端如何上传图片至七牛云

    上传文件是我们在前端开发中经常遇到的一个问题.最近在做某项目管理后台的时候,需要将轮播图上传至七牛云.以前在Vue里面做过类似的功能,但是在Angular中使用同样的方法发现行不通. 此篇文章主要介绍 ...

最新文章

  1. 为什么阿里巴巴强制要求使用包装类型定义属性?
  2. 2020年国际学术会议参考列表
  3. Hinton新论文:如何在神经网络中表示“部分-整体层次结构”?
  4. 数字孪生:连结现实与数字世界
  5. 单网卡Squid AS4 U5 设置
  6. 爬虫学习--豆瓣top250
  7. div后来居上 html,【CSS】误解:后来居上??有时这是错的
  8. 二级MYSQL的语法整理_MySQL语法整理
  9. CLion + OpenCV 开发
  10. vue项目中的回车登录
  11. android for循环比大小,如何让for()循环花费更少的时间(android)?
  12. Python正则提取
  13. AWS免费套餐避坑攻略:查看账户下所有region的资源,及时关停不需要的服务
  14. C#连接数据库自动生成实体类
  15. js清除浏览器缓存的几种方法
  16. python Excel xlwt 富文本 同一单元格内设置不同样式
  17. 走近“so,neither”开头的倒装句
  18. 百度地图显示多点连线+数字标注
  19. Chrome浏览器 改成黑色主题(含控制台)
  20. 遥感影像处理书籍推荐

热门文章

  1. Oracle 10g For Windows 10.1.0和 Oracle 10g For Linux 10.1.0.3下载地址
  2. NavigationController
  3. 08-微服务版单点登陆系统(SSO)实践
  4. 用token实现单点登录
  5. 第七天 01.ssh服务 使用堡塔以及xshell等连接linux
  6. 通过云服务器对内网穿透实现外网访问群晖NAS
  7. 图像分割:阈值获取方法总结
  8. c语言sqar是double,C语言怎么编写正弦波
  9. 特殊的空格 - ASCII(160)
  10. mac浏览器没有网络,通讯软件(QQ、微信、飞书等)正常