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

news/2023/6/7 23:00:56

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

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

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

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.t0ken
                    },
                    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官网

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-4556841.html

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

个性化个人博客系统项目详解

个性化个人博客系统详解 开源代码:个性化个人博客系统 参考项目:风丶宇的个人博客 目录结构 /blog: 网站前台页面项目/admin: 网站后台页面项目/blog-springboot: 网站后端API项目/extension_sensitive: 后端敏感词过滤扩展包/doc: 参考资料文档 项目依…

SpringCloud(12):Zuul路由网关

1 为什么需要服务网关 在分布式系统系统中,有商品、订单、用户、广告、支付等等一大批的服务,前端怎么调用呢?和每个服务一个个打交道?这显然是不可能的,这就需要有一个角色充当所有请求的入口,这个角色就是…

码蹄集新手村100题答案

码蹄集是今年新上线的一个OJ平台,内含了100道基础题和一些百度之星的题目。由于很多题目有原创性,搜不到相关解答,因此我花了两天特将100道题目刷了一遍,目前位居榜二。 码蹄集传送门:https://www.matiji.net/exam/ojq…

C语言之排序:选择法与冒泡法排序

我其实是一个C语言的新手&#xff0c;但是最近仔细琢磨了一下C语言中排序的两种方法&#xff1a;选择法与冒泡排序法&#xff0c;并以此来发出自己的第一篇CSDN博客&#xff0c;希望大家多多指教。 选择法&#xff1a; #include<stdio.h>void sort(int a[], int n) {in…

为什么说python是世界上最好的语言-《权力的游戏》告诉你,为啥 Python 是世上最好的语言...

如果用活在网盘的大热门美剧《权力的游戏》中的角色&#xff0c;来解读这个排行榜&#xff0c;会有一些有趣的发现&#xff0c;死了又被复活的囧雪代表的是python&#xff0c;而复活他的梅姨却是ruby&#xff1f;而最好的语言PHP又是谁&#xff0c;一起来看看吧~ 编程语言跟《权…

c语言xml文件添加dtd,XML中的DTD约束

什么是约束&#xff1f;在XML技术里&#xff0c;可以编写一个文档来约束一个XML文档的书写规范&#xff0c;这就是XML约束。约束定义了文档的结构&#xff0c;在某种程度上&#xff0c;也说明了如何在文档结构中放置数据。事实上&#xff0c;如果用XML作为数据的呈现&#xff0…

【回首2022,展望2023,兔年你好!】

兔年到&#xff0c;新年好&#xff01;提前祝各位程序猿新年好&#xff01;新的一年&#xff0c;意味着新的开始。回顾2022&#xff0c;我学习从0基础萌新&#xff0c;蜕变成学习完c语言&#xff0c;有了基础代码能力的新手。从第一个printf出来hello world&#xff0c;打印到屏…

面向物流行业的文档管理系统

用于运输和物流的 DocuWare 文档管理软件 物流和货运行业的效率激烈战在公路、火车、货船和空中展开。DocuWare 的快速、安全和灵活的文档管理是真正的竞争优势。在您的公司和客户的核心流程中节省新的成本和时间。 一、数字化和文档管理软件改变了物流公司的游戏规则 智能链…