uniapp小程序选择文件并上传到uniCloud

简介: uniapp小程序选择文件并上传到uniCloud

uniapp小程序选择文件并上传到uniCloud

官方文档:https://uniapp.dcloud.io/api/README

主要使用了chooseMessageFile(暂时支持选择聊天记录文件),saveTmpfile,uploadfile这三个API

1、选择文件

chooseFile:function(){
    let that = this;
    uni.chooseMessageFile({
        count: 1,
        success: res => {
            //filename是自动获取到的文件名称
            let filename = res.tempFiles[0].name,
            //获取到的文件路径
                filePath = res.tempFiles[0].path,
                houzhuiming = that.getHouzhui(filePath,'.');//获取上传文件后缀名
            //保存filename
            that.filename = filename;
            //通过后缀名判断文件类型
            if(['jpg','png','jpeg'].indexOf(houzhuiming) != -1){
                //如果是图片直接将filepath赋值给img绑定为图片的src,可以在页面上展示·
                that.img = filePath;
                //预览图片
                uni.previewImage({
                    //对选中的图片进行预览
                    urls: filePath,
                })
            }else{
                //不是图片的话,将准备好的图片展示出来
                that.img = 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-b06b1ef6-bb41-4224-9b73-8d3e34b7ed2f/a3ab7bba-3522-4244-98fa-d9f770407582.png';
            }
            //保存临时文件,需要保存为临时文件,后面才可以上传到unicloud,不然图片的临时路径会失效
            that.saveTmpfile(filePath);
        }
    })
}

2、保存临时文件

//保存临时文件
saveTmpfile: function(filepath){
    let that = this;
    uni.saveFile({
    tempFilePath: filepath,
    success: function (res) {
        //保存后的文件路径
        var savedFilePath = res.savedFilePath;
        that.savedFilePath = savedFilePath;
        }
    });
},

3、上传文件到unicloud

//上传文件到云存储空间
uploadfile: function(filePath,name){
    //显示加载弹窗
    uni.showLoading({
        mask:true,
        title:'正在上传文件,请稍等……'
    })
    // promise方式
    const result = uniCloud.uploadFile({
        filePath: filePath,
        cloudPath: name,
        onUploadProgress: function(progressEvent) {
            console.log(progressEvent);
            var percentCompleted = Math.round(
                (progressEvent.loaded * 100) / progressEvent.total
            );
        }
    }).then(res => {
        uni.hideLoading();
        uni.showToast({
            title:"上传成功",
            duration:1000
        })
    });
},
目录
相关文章
|
11天前
|
开发框架 小程序 前端开发
圈子社交app前端+后端源码,uniapp社交兴趣圈子开发,框架php圈子小程序安装搭建
本文介绍了圈子社交APP的源码获取、分析与定制,PHP实现的圈子框架设计及代码编写,以及圈子小程序的安装搭建。涵盖环境配置、数据库设计、前后端开发与接口对接等内容,确保平台的安全性、性能和功能完整性。通过详细指导,帮助开发者快速搭建稳定可靠的圈子社交平台。
116 18
|
8天前
|
移动开发 小程序 前端开发
超详细攻略!uniapp陪玩系统,打包陪玩小程序、H5需要注意什么?
陪玩系统的打包过程涵盖APP、小程序和H5平台。APP打包需使用uni-app开发工具,配置项目信息并选择云打包;小程序打包需在微信公众平台注册账号并提交审核;H5打包则直接通过uni-app生成文件并上传至服务器。各平台需注意权限配置、代码规范及充分测试,确保应用稳定性和兼容性。
|
2月前
|
人工智能 小程序 搜索推荐
uni app下开发AI运动小程序解决方案
本文介绍了在小程序中实现AI运动识别的解决方案。该方案依托于UNI平台,通过高效便捷的插件形式,实现包括相机抽帧控制、人体识别、姿态识别等在内的多项功能,无需依赖后台服务器,大幅提高识别效率和用户体验。方案内置多种运动模式,支持自定义扩展,适用于AI健身、云上赛事、AI体测等多场景,适合新开发和存量改造项目。
|
2月前
|
小程序 前端开发 JavaScript
在线课堂+工具组件小程序uniapp移动端源码
在线课堂+工具组件小程序uniapp移动端源码
48 0
在线课堂+工具组件小程序uniapp移动端源码
|
3月前
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
440 3
|
3月前
|
小程序 API
微信小程序更新提醒uniapp
在小程序开发中,版本更新至关重要。本方案利用 `uni-app` 的 `uni.getUpdateManager()` API 在启动时检测版本更新,提示用户并提供立即更新选项,自动下载更新内容,并在更新完成后重启小程序以应用新版本。适用于微信小程序,确保用户始终使用最新版本。以下是实现步骤: ### 实现步骤 1. **创建更新方法**:在 `App.vue` 中创建 `updateApp` 方法用于检查小程序是否有新版本。 2. **测试**:添加编译模式并选择成功状态进行模拟测试。
67 0
微信小程序更新提醒uniapp
|
3月前
|
移动开发 小程序 数据可视化
一招学会DIY官网可视化设计支持导出微擎、UNIAPP、H5、微信小程序源码
一招学会DIY官网可视化设计支持导出微擎、UNIAPP、H5、微信小程序源码
61 2
|
5月前
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
132 0
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
|
3月前
|
小程序 数据可视化 API
低代码可视化-uniapp商城首页小程序-代码生成器
低代码可视化-uniapp商城首页小程序-代码生成器
38 0
|
3月前
|
存储 移动开发 小程序
uniapp富文本editor输入二次扩展兼容微信小程序
uniapp富文本editor输入二次扩展兼容微信小程序
116 0