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
        })
    });
},
目录
相关文章
|
26天前
|
小程序 前端开发 关系型数据库
基于Uniapp+php校园小程序,校园圈子论坛系统功能,校园跑腿二手交流功能设计
校园圈子论坛及综合服务平台集成了校园跑腿、兼职信息、外卖团购、闲置交换、租赁服务、表白墙等多功能模块,提供一站式校园生活解决方案。系统采用uniapp前端和PHP后端开发,支持多城市、多学校切换,配备分站式后台管理,确保稳定性和安全性。通过融云IM SDK实现即时通讯功能,增强用户互动与粘性。适用于大学校园、城市及社区圈子,满足多样化需求,提升便捷体验。
|
24天前
|
小程序 前端开发 关系型数据库
uniapp跨平台框架,陪玩系统并发性能测试,小程序源码搭建开发解析
多功能一体游戏陪练、语音陪玩系统的开发涉及前期准备、技术选型、系统设计与开发及测试优化。首先,通过目标用户分析和竞品分析明确功能需求,如注册登录、预约匹配、实时语音等。技术选型上,前端采用Uni-app支持多端开发,后端选用PHP框架确保稳定性能,数据库使用MySQL保证数据一致性。系统设计阶段注重UI/UX设计和前后端开发,集成WebSocket实现语音聊天。最后,通过功能、性能和用户体验测试,确保系统的稳定性和用户满意度。
|
2月前
|
开发框架 小程序 前端开发
圈子社交app前端+后端源码,uniapp社交兴趣圈子开发,框架php圈子小程序安装搭建
本文介绍了圈子社交APP的源码获取、分析与定制,PHP实现的圈子框架设计及代码编写,以及圈子小程序的安装搭建。涵盖环境配置、数据库设计、前后端开发与接口对接等内容,确保平台的安全性、性能和功能完整性。通过详细指导,帮助开发者快速搭建稳定可靠的圈子社交平台。
|
1月前
|
移动开发 小程序 前端开发
超详细攻略!uniapp陪玩系统,打包陪玩小程序、H5需要注意什么?
陪玩系统的打包过程涵盖APP、小程序和H5平台。APP打包需使用uni-app开发工具,配置项目信息并选择云打包;小程序打包需在微信公众平台注册账号并提交审核;H5打包则直接通过uni-app生成文件并上传至服务器。各平台需注意权限配置、代码规范及充分测试,确保应用稳定性和兼容性。
|
28天前
|
移动开发 小程序
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
26 0
|
3月前
|
人工智能 小程序 搜索推荐
uni app下开发AI运动小程序解决方案
本文介绍了在小程序中实现AI运动识别的解决方案。该方案依托于UNI平台,通过高效便捷的插件形式,实现包括相机抽帧控制、人体识别、姿态识别等在内的多项功能,无需依赖后台服务器,大幅提高识别效率和用户体验。方案内置多种运动模式,支持自定义扩展,适用于AI健身、云上赛事、AI体测等多场景,适合新开发和存量改造项目。
|
3月前
|
小程序 前端开发 JavaScript
在线课堂+工具组件小程序uniapp移动端源码
在线课堂+工具组件小程序uniapp移动端源码
79 0
在线课堂+工具组件小程序uniapp移动端源码
|
4月前
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
562 3
|
4月前
|
小程序 数据可视化 API
低代码可视化-uniapp商城首页小程序-代码生成器
低代码可视化-uniapp商城首页小程序-代码生成器
45 0
|
4月前
|
存储 移动开发 小程序
uniapp富文本editor输入二次扩展兼容微信小程序
uniapp富文本editor输入二次扩展兼容微信小程序
168 0