小程序上傳圖片到七牛云存儲,服務端使用nodejs的thinkjs框架 服務端'use strict' import Base from './base.js'; import qiniu from 'qiniu'; export default class extends Base{ async uploadAction(){ var accessKey = '注冊七牛云之后,七牛提供的accessKey'; var secretKey = '注冊七牛云之后,七牛提供的secretKey'; var bucket = '你自己創建的存儲對象' var mac = new qiniu.auth.digest.Mac(accessKey,secretKey); var options = { scope:bucket, }; var putPolicy = new qiniu.rs.PutPolicy(options); var uploadToken = putPolicy.uploadToken(mac); think.log(uploadToken) // 給前端返回一個uploadToken return this.success(uploadToken); } } 小程序端通過服務端拿到uploadTokenupload: function () { var that = this; wx.request({ url: app.globalData.get_url + "/upload/upload", success: function (res) { var uploadToken = res.data.data; that.setData({ uploadToken: uploadToken }) } }) }, 上傳圖片chooseImage02: function (e) { var that = this; wx.chooseImage({ count: 1, sizeType: ['original', 'compressed'],// 可以指定是原圖還是壓縮圖,默認二者都有 sourceType: ['album', 'camera'], // 可以指定來源是相冊還是相機,默認二者都有 success: function (res) { var wechatma = []; var tempFilePaths = res.tempFilePaths; var filePath = tempFilePaths[0]; //七牛提供的上傳方法 qiniuUploader.upload(filePath, (res) => { wechatma.push(res.imageURL) that.setData({ imageURL02: res.imageURL, wechatma: wechatma }); }, (error) => { console.log('error: ' + error); }, { region: 'ECN', domain: app.globalData.upload_url + '/', uptoken: that.data.uploadToken, // 由其他程序生成七牛 uptoken }); } }) }, previewImage02: function (e) { wx.previewImage({ current: e.currentTarget.id, // 當前顯示圖片的http鏈接 urls: this.data.wechatma // 需要預覽的圖片http鏈接列表 }) }, 效果如下: |