1.云存储介绍

2.demo代码(上传图片/文件)

cloud.wxml

云存储

上传图片

cloud.js

// miniprogram/pages/cloud/cloud.js

const db = wx.cloud.database();//初始化数据库

Page({

/**

* 页面的初始数据

*/

data: {

},

// 上传图片

upload() {

// 1.选择图片 ,官方文档api

// https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.chooseImage.html

wx.chooseImage({

count: 1,//当前图片选择个数, 小程序最多支持一下选择9张

sizeType: ['original', 'compressed'], //['源文件','压缩文件']

sourceType: ['album', 'camera'],//文件来源 ['相册','摄像头牌照']

success(res) {

// tempFilePath可以作为img标签的src属性显示图片(图片临时路径)

const tempFilePaths = res.tempFilePaths

console.log(tempFilePaths) //tempFilePaths是数组

// 官方api https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/storage/api.html

wx.cloud.uploadFile({

//cloudPath: 'example.png', // 上传至云端的路径

//图片名字 先用时间戳代替了,看自己喜好

cloudPath: new Date().getTime()+'.png',

filePath: tempFilePaths[0], // 小程序临时文件路径

success: res => {

// 返回文件 ID

console.log(res.fileID)

db.collection('image').add({

data: {

fileID: res.fileID

}

}).then(res=>{

console.log(res)

}).catch(err=>{

console.error(err)

})

},

fail: console.error

})

}

})

}

})

至此上传图片成功啦!

数据库里:

云存储里:

3.图片/文件 获取展示

云存储

图片展示

// 获取图片 并且展示 先获取当前用户登录的openid再去对应的 拿数据

getFile() {

wx.cloud.callFunction({

name: 'login'

}).then(res => {

db.collection('image').where({

_openid:res.result.openid

}).get().then(res2=>{

console.log(res2)

this.setData({

images: res2.data

})

})

})

},

其中wx.cloud.callFunction({

name: 'login'

})

login云函数自带的,直接拿来用,也可以自己写, 写完记得右键部署

效果:

4.图片/文件  下载

下载图片

//下载图片/文件

downloadFile(e) {

// console.log(e.target.dataset.fileid)

wx.cloud.downloadFile({

fileID: e.target.dataset.fileid, // 文件 ID

success: res => {

// 返回临时文件路径

console.log(res.tempFilePath)

// 官方api保存图片到相册https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.saveImageToPhotosAlbum.html

// 保存图片到手机相册

wx.saveImageToPhotosAlbum({

filePath: res.tempFilePath,

success(res) {

wx.showToast({

title: '保存到手机成功',

})

},

fail(err) {

console.log(err)

wx.showModal({

title: '提示',

content: '需要您授权保存相册',

showCancel: true,//是否显示取消按钮

success: res => {

if (res.confirm) {

console.log('用户点击确定')

wx.openSetting({

success: res2 => {

if (res2.authSetting['scope.writePhotosAlbum']) {

wx.showModal({

title: '提示',

content: '获取权限成功,再次点击图片即可保存',

})

}

},

fail: err2 => {

console.log(err2)

}

})

} else if (res.cancel) {

console.log('用户点击取消')

}

}

})

}

})

},

fail: console.error

})

},

我这边的设计,  用户拒绝授权相册,  再次点击  弹出 再次去授权,  比较人性

wxml 点击图片下载_云存储之上传图片和展示图片(小程序云开发)相关推荐

  1. 小程序开发工具中黑马优购小程序tabs组件_别不信,二十一天巧妙精通微信小程序的开发,附赠教程...

    资料简介: 这是一本帮助编程爱好者和从业人员从零开始学习微信小程序设计的书.本书紧跟微信小程序的技术发展,是目前在该领域率先进行系统的技术探讨和培训的著作. 本书站在学习的角度,目的是让学习者通过21 ...

  2. php访问微信云数据库,第三方服务器php获取微信小程序云开发access_token和云数据库...

    微信小程序云开发开放了http api,可以从第三方访问云服务了.方便很多.云服务的后台,可以用PC端写了. 流程大概就是通过appid,appkey获得access_token,这个access_t ...

  3. 小程序·云开发实战 - 校园约拍小程序

    创意来源于生活,之所以开发这个校园约拍小程序,是因为在摄影选修课上常听老师抱怨外出写生老找不到模特,许多大学生都想拥有一套专属自己记忆的摄影作品,记录下不会磨灭的美好回忆,可如何找到让自己满意的摄影师 ...

  4. 2021微信小程序云开发学习路线【视频加笔记】

    从零开始学习小程序开发,小程序云开发的学习资料和路线!!想入门小程序请看下面内容~ 包括:云数据库,云函数,云托管,小程序云开发和服务器开发的项目实战,零基础学习JavaScript,小程序语法,cm ...

  5. 微信小程序云函数、云存储

    小程序云开发-云函数 云函数:特殊函数将其保存小程序云上 云函数功能有很多优点:权限高完成复杂操作 演示三个实例 (1)求和云函数sum() (2)获取当前登录用户openid (3)批量删除云数据库 ...

  6. 从小程序到小程序云开发

    点击观看大咖分享 小程序云开发为微信小程序开发者提供云到端的一站式解决方案,帮助开发者统一构建和管理资源,能有效降低技术门槛.减少研发成本.提升开发效率,协助开发者快速搭建稳定高质量的微信小程序应用. ...

  7. 高能玩家!硬核自制小程序云“肝”动森

    做为一个练习时长一月半的动森岛民,最近周围岛友纷纷苦于售卖大头菜,谁能想到如此治愈可爱的养成游戏刺激堪比期货大盘. 都说这是猛男游戏,本期就由我们的高萌小哥哥-亚当传授他的神级玩法:用Serverle ...

  8. 支付宝小程序云亮相!向小程序生态开放全面云服务

    前言: 小程序是一种轻量级应用程序,不需要安装即可直接在手机上使用.相较于传统的APP来讲,其无需下载安装,轻便快捷,快速启动,易于推广的良好特性为我们所青睐. 为此,支付宝小程序云,不仅为使用者,商 ...

  9. 微信小程序云开发(2)——在页面显示云数据库的数据

    微信小程序云数据库的查询可以参考"微信小程序云开发(1)" 在页面显示数据库里的数据 在"pages/index/index.wxml"文件中输入以下代码: & ...

最新文章

  1. c++ make_pairpair
  2. 为什么工厂模式可以解耦?(一)
  3. DDM实践:数据库秒级平滑扩容方案
  4. 系统监控:top vs Htop vs Glances
  5. 在NVIDIA Jetson Xavier NX上安装llvmlite报错:No such file or directory: ‘llvm-config‘: ‘llvm-config‘
  6. CentOS 5.5 Freeradius MySQL
  7. 论文浅尝 | LGESQL: 结合线性有向图以及普通有向图的自然语言转换SQL语句模型...
  8. 修改vant 弹窗Dialog组件调用是确认按钮与取消按钮的文字
  9. CCIE学习(31)—— RIP知识回顾
  10. 新增页和列表页遇到的坑
  11. 完全自定义TabBar(八)
  12. 塞尔达传说gba_【译介】《塞尔达传说:不可思议的帽子》2004年开发者访谈
  13. js中的this指向问题
  14. 怎样用计算机制作思维导图,思维导图怎样画?分享电脑绘制思维导图方法
  15. 小码哥C++_汇编指令
  16. VMware的linux虚拟机玩耍 [2] (环境配置与一些软件安装)
  17. 关于限流熔断Sentinel总结
  18. 云服务器怎么做成文件共享系统,怎样实现云服务器文件共享
  19. php删除头尾空,分享php中去除头尾空格的2种方法
  20. 家庭观念算老几?(转)

热门文章

  1. Vue单文件组件的使用
  2. 进程的介绍(概念、作用)
  3. 为什么,AX中存储的数据与我们日常理解相违背。
  4. DEV为什么不能输出小数 浮点数?
  5. 汇总|基于3D点云的深度学习方法
  6. 【直播回顾】蚂蚁金服高级开发工程师萧恺:IDEA 插件开发入门教程
  7. react中试用leaflet简单起步
  8. 日志管理之 Docker logs - 每天5分钟玩转 Docker 容器技术(87)
  9. 【ruby项目,语言提交检查(一)】怎样高速学习ruby ?
  10. Lua截取utf-8编码的中英文混合字符串