微信小程序云开发———云存储

这篇具有很好参考价值的文章主要介绍了微信小程序云开发———云存储。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在微信小程序的云开发平台中有一个云存储,这里可以存放它图片、音频、视频等资源,甚至还可以存储静态网页,需要使用的时候可以直接调用。

有关于云存储的安全规则可以查看官方文档:云存储安全规则 | 微信开放文档 (qq.com)

上传是需要先选择文件然后再调用上传API进行上传,但是微信小程序原本选择照片和视频的API现已经停止了维护,分别是wx.chooseImage和wx.chooseVideo。微信小程序云开发———云存储微信小程序云开发———云存储

 所以最好使用微信开发文档所说的使用wx.chooseMedia来代替这两个API

wx.chooseMedia(Object object) | 微信开放文档 (qq.com)官方文档:wx.chooseMedia(Object object) | 微信开放文档 (qq.com)

使用wx.cloud.uploadFile上传到云存储中

咱们废话不多说,直接上代码!!

js代码段:

Page({
    getlist(){
        wx.cloud.database().collection('goods')
        .get().then(res=>{
            console.log('1',res.data)
            wx.stopPullDownRefresh() //结束刷新动画
            this.setData({
                list:res.data
            })
        }).catch(err=>{
            console.log('0',err)
        })
        wx.cloud.database().collection('videos')
        .get().then(res=>{
            console.log('2',res.data)
            wx.stopPullDownRefresh() //结束刷新动画
            this.setData({
                videolist:res.data
            })
        }).catch(err=>{
            console.log('0',err)
        })
    },
    onLoad(){
        wx.startPullDownRefresh()  //启动刷新页面
        this.getlist()
    },
    choose(){
        const that = this
          wx.chooseMedia({
            count: 9,
            mediaType: ['image','video'],
            sourceType: ['album', 'camera'],
            maxDuration: 30,
            camera: 'back',
            success(res) {
              console.log(res.tempFiles)
              console.log(res)
              if(res.type == "video"){
                let src = res.tempFiles[0].tempFilePath.split('tmp/')[1]
                console.log(src)
                wx.cloud.uploadFile({
                  cloudPath: 'myImage/' + new Date().getTime() + "_" +  Math.floor(Math.random()*1000) + src,
                  filePath: res.tempFiles[0].tempFilePath, // 文件路径(时间戳)
                }).then(res => {
                  that.setData({
                    videourl:res.fileID
                  })
                  console.log(that.data.videourl)
                  wx.cloud.database().collection('videos')
                  .add({
                      data:{
                        videofileID:that.data.videourl
                      }
                  }).then(res=>{
                      console.log('视频地址成功存放到数据库',res)
                  }).catch(err=>{
                      console.log('视频地址失败存放到数据库',err)
                  })
                }).catch(error => {
                  console.log('上传失败',error)
                })
              }else{
                res.tempFiles.forEach(function(item){
                  console.log(item)
                  const path = item.tempFilePath
                  let src = item.tempFilePath.split('tmp/')[1]
                  console.log(src)
                  wx.cloud.uploadFile({
                    cloudPath: 'myImage/' + new Date().getTime() + "_" +  Math.floor(Math.random()*1000) + src,
                    filePath: path, // 文件路径(时间戳)
                  }).then(res => {
                    console.log('上传成功',res.fileID)
                    wx.cloud.database().collection('goods')
                    .add({
                        data:{
                            fileID:res.fileID
                        }
                    }).then(res=>{
                        console.log('添加成功',res)
                    }).catch(err=>{
                        console.log('添加失败',err)
                    })
                  }).catch(error => {
                    console.log('上传失败',error)
                  })
                })
              }
            }
          })
      },
    //   监听用户下拉事件
    onPullDownRefresh:function(){
        console.log('下拉事件监听')
        // 自带刷新动画
        this.getlist()
    }
})

创建两个运输库分别存储上传的image和video不同的id

wxml:

   <view class="first" >
        <view wx:for="{{list}}" wx:key="index" >
            <image src="{{item.fileID}}"></image>
        </view>
    </view>
    <view wx:for="{{videolist}}" wx:key="index">
        <video src="{{item.videofileID}}"></video>
    </view>
<button bindtap="choose" type="primary">上传</button>

wxss

image{
    width: 360rpx;
    height: 350rpx;
}
video{
    width: 100%;
    height: 500rpx;
}
.first{
    display: flex;
}

文件的上传及下载

wx.chooseMessageFile官方文档:wx.chooseMessageFile | 微信开放文档 (qq.com)

wx.cloud.downloadFile官方文档:​​​​​​wx.cloud.downloadFile | 微信开放文档 (qq.com)

在微信开发者工具中编译上传文件会在本地端选择文件,在真机中则是从客户端选择文件进行上传,调用wx.cloud.downloadFile下载文件后,文件会自动打开。word,excel,ptf等都可以上传。

js:

Page({
    chooseFlie(){
        wx.chooseMessageFile({
            count: 1,
            type: 'all',
            success (res) {
                console.log(res)
              // tempFilePath可以作为 img 标签的 src 属性显示图片
              const tempFilePaths = res.tempFiles
              console.log(res.tempFiles[0].path)
              console.log(res.tempFiles[0].name)
              wx.cloud.uploadFile({
                  cloudPath:res.tempFiles[0].name,
                  filePath:res.tempFiles[0].path
              }).then(res=>{
                  console.log('上传成功',res)
              }).catch(err=>{
                  console.log('上传失败',err)
              })
            }
          })
    },
    // 获取用户输入的下载链接
    getContent(e){
        console.log(e.detail.value)
        this.setData({
            fileId:e.detail.value
        })
    },
    // 下载文件
    downloadFile(){
        let fileId = this.data.fileId
        console.log('下载链接',fileId)
       if(fileId != null && fileId.length > 0){
            wx.cloud.downloadFile({
                fileID:fileId
            }).then(res=>{
                console.log('下载成功',res)
                wx.openDocument({
                filePath: res.tempFilePath,
                success: function (res) {
                    console.log('打开文档成功',res)
                }
                })
            }).catch(err=>{
                console.log('下载失败',err)
                wx.showToast({
                  icon:'error',
                  title: '输入的链接有误',
                })
            })
       }else{
           wx.showToast({
               icon:'none',
               title: '下载链接为空',
           })
       }
    }
})

ml:

<button bindtap="chooseFlie" type="primary">选择文件</button>
请输入下载链接
<input bindinput="getContent"></input>
<button bindtap="downloadFile" type="primary">点击下载</button>

css:

input{
    border: 1px solid black;
}

执行效果:

微信小程序云开发———云存储微信小程序云开发———云存储

 微信小程序云开发———云存储

 控制台打印出的文件链接即为下载文件的地址

微信小程序云开发———云存储

点击下载后,文档下载完成会自动打开

微信小程序云开发———云存储

 文章来源地址https://www.toymoban.com/news/detail-497909.html

到了这里,关于微信小程序云开发———云存储的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序云存储(文件上传到云端)

      我们直到,云开发控制台更多的是对项目中的初始文件的操作管理,例如项目的Logo图片可以通过云开发控制台提起上传到云端。项目在执行的过程中也会涉及文件的操作,例如用户上传图片的操作,这时就需要用到云开发存储API。   小程序云开发提供了一系列存储操

    2024年02月09日
    浏览(43)
  • 对象存储OSS(微信小程序直传实践)

    客户端进行表单直传到OSS时,会从浏览器向OSS发送带有Origin的请求消息。OSS对带有Origin头的请求消息会进行跨域规则(CORS)的验证。因此需要为Bucket设置跨域规则以支持Post方法。 登录阿里云OSS管理控制台 单击 Bucket列表 ,然后单击目标Bucket名称 在左侧导航栏,选择 权限管

    2024年02月11日
    浏览(44)
  • 微信小程序获取收货地址及存储收货地址

    这个城市数据的js直接放网盘了我 链接:https://pan.baidu.com/s/18UsJ1VUxEI-7LJjVW8BW4w  提取码:mmao wxml wxss

    2024年02月15日
    浏览(52)
  • 【微信小程序】使用云存储存入指定文件夹

    在我们开发微信小程序的时候常会用到 云开发 的功能,它相 比传统的SQL上手难度低 ,比较适合没有什么后端基础的开发者使用。在具体的项目需求中我们会 让用户上传一些图片或者表格,随着用户量增大,文件类型增多,云存储分类显得尤其重要 。下面我举一个例子来带

    2024年02月12日
    浏览(53)
  • 微信小程序 --- 通用模块封装(showToast,showModal ,本地存储)

    目录 01. 为什么进行模块封装 02. 消息提示模块封装 03. 模态对话框封装 04. 封装本地存储 API 05. 拓展:封装异步存储API+优化代码 01. 为什么进行模块封装 在进行项目开发的时候,我们经常的会频繁的使用到一些 API, 例如: wx.showToast()  、 wx.showModal() 等消息提示  API  ,这些

    2024年02月22日
    浏览(48)
  • 微信小程序如何读取本地云存储txt数据,避免乱码

    找到你的txt文件,重命名为json文件 上传到云存储中,获取File ID 编写js代码 相关技术文档: https://developers.weixin.qq.com/miniprogram/dev/api/file/FileSystemManager.readFile.html

    2024年02月12日
    浏览(52)
  • 微信小程序本地存储(wx.setStorage)和(wx.setStorageSync)

     在微信小程序中,可以使用本地存储来保存一些数据比如用户状态,姓名,性别等; 本地存储主要包括两种方式:缓存和本地数据存储。 缓存 缓存是一种快速访问内存的临时存储机制,可以有效地提高应用程序的响应速度。在微信小程序中,可以使用 wx.setStorage 方法和

    2023年04月18日
    浏览(100)
  • 使用微信小程序云存储中的fileID渲染出错的解决

    [渲染层网络层错误] Failed to load local image resource /pages/center/cloud://cloud1-1g0b42x731618183.636c-cloud1-1g0b42x731618183-1317112875/avatarUrl/%E5%A4%B4%E5%83%8F_2cc84e26640db55d04179fe54c4fb585_1678620824098.png  the server responded with a status of 500 (HTTP/1.1 500 Internal Server Error) (env: Windows,mp,1.06.2301160; lib: 2.14.1)  导致

    2024年02月10日
    浏览(50)
  • 【教程】微信小程序如何拍摄图片及视频并上传到后台进行存储

    在 微信小程序 中需要使用手机 拍摄照片以及视频上传到后台 进行进一步的操作,需要解决以下两个问题: 微信小程序如何拍摄照片及视频 如何将拍摄的照片及视频上传到后台进行存储 前端开发:微信小程序原生 后端开发:Flask 微信小程序如何拍摄照片及视频:使用 wx.

    2024年01月20日
    浏览(81)
  • 云原生 - 微信小程序 COS 对象存储图片缓存强制更新解决方案

    遇到一个这样的情况:在微信小程序里图片缓存十分麻烦,网上很多说在腾讯云里的 COS 存储对象服务里设置对应的图片缓存(Header 头 Cache-Contorl),说实话真不好用,一会儿生效,一会儿没生效,而且量又大。于是,今天给大家分享一个简单粗暴的解决方案~ 以腾讯云为例,

    2024年01月23日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包