博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小程序图片上传七牛
阅读量:5918 次
发布时间:2019-06-19

本文共 2982 字,大约阅读时间需要 9 分钟。

开发准备

  • 注册七牛云的账号, 
  • 获得ACCESS_KEYSECRET_KEY 

 

  • 创建自己的存储空间,记录空间名(bucketname)、存储区域。

 

 

上传图片

一、需要后端根据ACCESS_KEY、SECRET_KEY 在服务器生成一个upToken给到前端

二、前端部分

  • index.js
  • qiniuUploader文件地址:https://github.com/gpake/qiniu-wxapp-sdk/blob/master/demo/qiniu-demo/utils/qiniuUploader.js
const qiniuUploader = require("../../utils/qiniuUploader");//index.js// 初始化七牛相关参数function initQiniu() {  var options = {    region: 'NCN', // 华北区    uptokenURL: 'https://[yourserver.com]/api/uptoken', //请求后端uptoken的url地址    //uptoken: 'xxx',  //你请求后端的uptoken,和上面一样的,uptokenURL不填就找uptoken,填一个就可以了(这里是字符串数据不是url了)    domain: 'http://[yourBucketId].bkt.clouddn.com', //yourBucketId:这个去你域名配置那里要    shouldUseQiniuFileName: false,    //key: ''   };  qiniuUploader.init(options);}//获取应用实例var app = getApp()Page({  data: {    imageObject: {}  },  //事件处理函数  onLoad: function () {    console.log('onLoad')    var that = this;  },  didPressChooesImage: function() {    var that = this;    didPressChooesImage(that);  },    didCancelTask: function() {      this.data.cancelTask()    }});function didPressChooesImage(that) {  initQiniu();  // 微信 API 选文件  wx.chooseImage({      count: 1,      success: function (res) {        var filePath = res.tempFilePaths[0];        // 交给七牛上传        qiniuUploader.upload(filePath, (res) => {          that.setData({            'imageObject': res          });        }, (error) => {          console.error('error: ' + JSON.stringify(error));        },        null,// 可以使用上述参数,或者使用 null 作为参数占位符        (progress) => {          console.log('上传进度', progress.progress)            console.log('已经上传的数据长度', progress.totalBytesSent)            console.log('预期需要上传的数据总长度', progress.totalBytesExpectedToSend)        }, cancelTask => that.setData({cancelTask})        );      }    })}
上面代码初始化七牛更多相关参数
  • imageArray:准备上传的图片临时地址数组。
  • fileHead:自定义上传七牛文件名的头,为了区别上传文件,比如图片/视频/录音/其他,
  • imgName:自定义上传七牛文件名,前端处理嘛,我就简单的通过截取临时路径(filePath )的30-50位字符作为储存到七牛的文件名,即使你添加了两张相同的图片,小程序给你的临时路径也是不一样的,所以不会存在重名情况。
  • domain:下载资源时用到。如果设置,在上传后的success里返回的res.ImageURL字段,是一个带http的直接可以访问的文件地址,否则需要自己拼接。
  • key:最终储存到七牛的文件名,我这里的图片文件名=文件头(fileHead)+伪文件名(imgName)
  • uploadURL:上传到七牛的那个存储区域,上传区域和上传区域代码一定要对应上。
  • region:上传区域代码。
  • shouldUseQiniuFileName:表示是否由七牛来定义上传文件名,如果是 true,则文件 key 由 qiniu 服务器分配 (全局去重)。默认是 false,也就是我们自己来定义。如果key设置了,优先级最高

 

  • index.wxml
hash:
{
{imageObject.hash}}\n\n
key:
{
{imageObject.key}}\n\n
imageURL:
{
{imageObject.imageURL}}
  • index.css
/**index.wxss**/text {  word-break: break-all; }.main {  height: 100%;  display: flex;  flex-direction: column;  align-items: center;  justify-content: space-between;  padding: 100rpx 0;  box-sizing: border-box;}.image-container {  background-color: #f2f2f2}.data {  margin: 5px;}

 

  •  还有记得去小程序后台配置上传地址白名单(对应你选的存储区域,例如华北区,https://up-z1.qbox.me)

 

下载社区SDK, 

  •  这个是微信小程序前端demo ; 
  • ,这个是社区的链接。

转载于:https://www.cnblogs.com/tuspring/p/9869397.html

你可能感兴趣的文章
聊聊host中ip/域名映射记录的解析规则
查看>>
180620-mysql之数据库导入导出
查看>>
【干货】界面控件DevExtreme视频教程大汇总!
查看>>
在Fedora 15上使用Vmware Server 2.0.2
查看>>
oracle 按每天,每周,每月,每季度,每年查询统计数据
查看>>
正则表达式
查看>>
批处理文件bat清除.snv
查看>>
linux大于2t的硬盘分区gpt
查看>>
李飞飞团队提出视频事件描述新模型,附849小时数据集
查看>>
解决vSphere5.5安装之后不能添加域用户权限
查看>>
Linux 下编译安装 MySQL(Percona Server) 5.6
查看>>
EXCHANGE 2016 - 事件ID 12017
查看>>
Linux Software Package(Install,Uninstall)
查看>>
php分页必用的几个单词
查看>>
dnsmasq配置文件详解
查看>>
MYsql 创建计算字段 CONCAT
查看>>
链路聚合技术和IEEE802.3ad
查看>>
nginx 日志出现400错误
查看>>
分布式一致性算法:Raft 算法(Raft 论文翻译)
查看>>
Android ListView下拉刷新点击加载更多
查看>>