1.1.1 • Published 5 years ago

@carpenter/miniprogram-qiniuupload v1.1.1

Weekly downloads
1
License
MIT
Repository
github
Last release
5 years ago

miniprogram-qiniuupload

小程序自定义组件 - 七牛上传组件

使用此组件需要依赖小程序基础库 2.3.2 以上版本,同时依赖开发者工具的 npm 构建。具体详情可查阅官方 npm 文档。 项目参考@oubingbing七牛传图插件并结合自身项目改为了自定义第三方组件

miniprogram-qiniuupload

使用方法

  1. 安装 miniprogram-qiniuupload
npm install --save @carpenter/miniprogram-qiniuupload
  1. 在需要使用 miniprogram-qiniuupload 的页面 page.json 中添加 miniprogram-qiniuupload 自定义组件配置
{
  "usingComponents": {
    "upload": "@carpenter/miniprogram-qiniuupload",
    // "imggrid": "@carpenter/miniprogram-qiniuupload"
  }
}
  1. WXML 文件中引用 miniprogram-qiniuupload
  <!-- 目前暂不支持自定义样式 -->
  <upload
    id="upload"
    info="{{ uploadInfo }}"
    isUpload="{{ true }}"
    bindsuccess="onUpImgSuccess"
    binddelete="onDeleteImgSuccess"
    binderror="onUpImgError"
  />
  <!-- <imggrid list="{{ list }}" /> -->
  <!-- <canvas canvas-id="compressCanvas" style="width: 300px; height:300px;"></canvas> -->

miniprogram-qiniuupload 参数

属性名类型默认值是否必须说明
infoObject上传 ?是 :否七牛配置信息
isUploadBooleanfalse上传 ?是 :否是否开启上传
listArray[]纯展示情况下需传入
spaceNumber12图片间距,单位rpx

info参数

属性名类型默认值说明
uploadNumberint9一次性选择图片的最大限制
regionStringECNECN, SCN, NCN, NA,您的七牛存储区域,或者区域地址
tokenString七牛上传认证token,需要您再后台服务器请求七牛服务器活动,并且维护token的有效期
tokenURLString获取token的api地址
tokenFuncFunction处理wx.request返回数据 return token
fileKeyStringkey值
domainString在七牛配置CDN域名,七牛测试域名有限制,所以需要您在七牛后台配置一个备案域名
fileNameBooleanfalse是否使用七牛文件名
imgSecCheckBooleanfalse是否对图片鉴黄
# 设置 {token} 时 {tokenURL}与{tokenFunc} 不设置
# 设置 {tokenURL}与{tokenFunc} 时 {token} 不设置
    {tokenFunc} 方法返回格式为 {token: 'xxx', key: 'xx', domain: 'http://xx.xx'}
      token 同info.token
      key 同 info.fileKey
      domain 同 info.domain

# 设置 {fileName} 为 false 时
    - 设置 {fileKey} 时文件名为 {fileKey}
    - 未设置 {fileKey} 时文件名以小程序图片临时地址获取
# 设置 {fileName} 为 true 时文件名以七牛生成为准
# 设置 {imgSecCheck} 为 true 时
    page页需添加
    <canvas canvas-id="compressCanvas" style="width: 300px; height:300px;position: fixed;top: 0;left: 3000px;"></canvas>
    鉴黄使用的是微信小程序鉴黄
    通过wx.uploadFile()接口将图片发送给 七牛上传token接口,如果鉴定通过则返回token,不通过不返回token
Page({
  /**
   * 页面的初始数据
   */
  data: {
    // 上传组件配置
    uploadInfo: {
      uploadNumber: 9, // 可以上传图片的数量限制,默认是九张
      region: 'ECN', // ECN, SCN, NCN, NA,您的七牛存储区域
      token: '', // 七牛上传token凭证
      // fileKey: 'xxx',
      // tokenUrl: 'https://xxx.xxx.xxx',
      // tokenFunc: res => {token: res.data.token, key: res.data.key, domain: data.domain},
      domain: 'https://xxx.xxx.xxx', // 您配置的七牛CDN域名
      fileName: false,
    },
    list: [
      'https://xxx.xxx.xxx',
    ]
  },
  /**
   * 上传成功后的回调, 返回全新的图片数组
   */
  onUpImgSuccess(event) {
    console.log(`上传后获得的图片数组:${event.detail}`)
  },
  // 上传后获得的图片数组:['http(s)://xxx.xxx.xxx']

  /**
   * 删除图片的回调,返回全新图片数组
   */
  onDeleteImgSuccess(event) {
    console.log(`删除后剩余的照片数组:${event.detail}`)
  },
  // 删除后剩余的照片数组:['http(s)://xxx.xxx.xxx']
  /**
   * 上传图片出错的回调
   */
  onUpImgError(event) {
    console.error(`错误:${event.detail}`)
  }
  /**
   * 清除
   */
  clearUpload() {
    this.selectComponent('#upload').clearImageArray()
  }
})

绑定域名

微信小程序需要在微信管理后台绑定相应的域名,否则会被拦截,根据自己七牛存储区域绑定对应的域名,存储区域与域名的对应如下所示

ECN : https://up.qbox.me
NCN : https://up-z1.qbox.me
SCN : https://up-z2.qbox.me
NA  : https://up-na0.qbox.me
1.1.1

5 years ago

1.1.0

5 years ago

1.0.5

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

6 years ago

1.0.0

6 years ago