uni-app 中实现文件和图片的上传-H5

1 篇文章 0 订阅

        之前写过一篇上传的文章📕,但是那篇文章仅仅只能实现上传图片的功能,而且代码写的比较乱,看起来很繁杂,最近有幸又遇到了上传图片和文件的需求,在完成这个功能后,整理一下,希望能给需要做上传功能的人提供一些参考😊。

        首先我先展示一下我的效果图,方便需求跟我差不多的人快速决定是否继续预览本文章。

需求是:点击上传后,弹出弹框选择要传的文件类型(图片或者文件),前提是每次只能选择一个不能多选,接着就将选好的文件名、路径放在定义好的空数组里面,点击完成后调接口讲数据保存到数据库。

html部分本文不提供,只提供上传文件部分的js代码。代码如下:

//点击弹出框类型后的方法
selectClick(e) {
                let that = this
                if (e.name == '相册') {//上传图片
                    uni.chooseImage({
                        count: 3,
                        sourceType: ['album', 'camera'],
                        success(res) {
                            that.upLoadFileByUni(res)
                        }
                    })
                } else if (e.name == '文件') { //上传文件
                    uni.chooseFile({
                        count: 3, //默认100
                        extension: ['.zip', '.doc','.docx','.xlsx','.xls','.txt','.ppt','.pptx','.pdf'],//想要上传的文件类型
                        success(res) {
                            that.upLoadFileByUni(res)
                        }
                    });
                } else {
                    this.showSheet = false //关闭弹出框
                }
            },

        //上传文件
            upLoadFileByUni(res){
                let that = this
                uni.uploadFile({
                    url: 'http://xxxxxx/upload',
                    filePath: res.tempFilePaths[0],
                    name: 'files',
                    formData: {//调用上传接口需要的参数
                        type:xxx,
                        name:res.tempFiles[0].name,
                        xxx:'xx'
                    },
                    header:{
                        token:that.token
                    },
                    success: (uploadFileRes) => {
                        that.showSheet = false
                        that.fileList.push(JSON.parse(uploadFileRes.data).data)
                        that.$refs.uToast.show({
                            message: '上传成功',
                            position: 'top',
                            type: 'success'
                        })
                    }
                })
            }

使用的是uni.app官方提供的方法uni.chooseFile、uni.chooseImage、uni.uploadFile,有不懂的可以直接看官网文档:uni.chooseImage(OBJECT) | uni-app官网 uni.chooseFile(OBJECT) | uni-app官网
uni.uploadFile(OBJECT) | uni-app官网

  • 7
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
uni-app 实现 H5 静默微信授权,你可以按照以下步骤进行操作: 1. 首先,确保你已经在微信公众平台上注册了你的应用,并获取到了 AppID。 2. 在 uni-app 项目的 `main.js` 文件引入微信 JS-SDK: ```javascript import wx from 'weixin-js-sdk' Vue.prototype.$wx = wx ``` 3. 创建一个 `wechat.js` 文件,用于封装微信 JS-SDK 的相关操作,例如: ```javascript import wx from 'weixin-js-sdk' export function initWechatConfig() { // 向后端请求获取微信配置信息 // ... // 初始化微信 JS-SDK wx.config({ debug: false, appId: '', // 你的 AppID timestamp: '', // 后端返回的时间戳 nonceStr: '', // 后端返回的随机字符串 signature: '', // 后端返回的签名 jsApiList: ['checkJsApi', 'login', 'getUserInfo'] // 需要使用的微信 API }) } export function login() { return new Promise((resolve, reject) => { wx.ready(() => { wx.login({ success: res => { if (res.code) { // 将 code 发送到后端服务器进行处理,获取用户信息 // ... resolve(res.code) } else { reject(new Error('微信登录失败')) } }, fail: err => { reject(err) } }) }) }) } export function getUserInfo() { return new Promise((resolve, reject) => { wx.ready(() => { wx.getUserInfo({ success: res => { // 获取到用户信息,进行处理 // ... resolve(res.userInfo) }, fail: err => { reject(err) } }) }) }) } ``` 4. 在需要授权的页面,调用 `initWechatConfig()` 方法初始化微信 JS-SDK 配置,在需要获取用户信息的地方调用 `login()` 方法进行登录,并在登录成功后再调用 `getUserInfo()` 方法获取用户信息。 5. 根据获取到的用户信息进行业务逻辑处理。 通过以上步骤,你可以在 uni-app H5 实现静默微信授权。请注意,具体的实现细节可能会因为你的业务逻辑和后端实现而有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值