小程序上传图片到七牛云存储,服务端使用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);
}
}
小程序端
upload: 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链接列表
})
},
效果如下:
本文作者: 逆旅
原文地址:小程序上传图片到七牛-教程-小程序社区-微信小程序-微信小程序开发社区-小程序开发论坛-微信小程序联盟