【uniapp upload】 上传图片和视频

2023-10-26

在这里插入图片描述

template

<view class="u-f wrap">
			
					<u-upload
						accept='image'
						:fileList="fileList1"
						@afterRead="afterRead"
						@delete="deletePic"
						multiple
						name="1"
						width="160rpx"
						height="160rpx"
					>
					<image src="@/static/img/upload1.png" 
						mode="" style="width: 160rpx;height: 160rpx;"></image>
					</u-upload>
				</view>
				<view class="u-f wrap">
		
					<u-upload
					:fileList="fileList2"
						@afterRead="afterRead"
						@delete="deletePic"
						name="2"
						multiple
						accept="video"
						width="160rpx"
						height="160rpx"
					>
					<image src="@/static/img/upload2.png"
						mode="" style="width: 160rpx;height: 160rpx;"></image>
					</u-upload>
				</view>

script

<script>
export default {
	data() {
			return {
				
				fileList1: [],
				fileList2:[],
			
			}
		},
		methods:{
			// 新增图片
			async afterRead(event){
					// 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
					let lists = [].concat(event.file)
					let fileListLen = this[`fileList${event.name}`].length
					lists.map((item) => {
						this[`fileList${event.name}`].push({
							...item,
							status: 'uploading',
							message: '上传中'
						})
					})
					for (let i = 0; i < lists.length; i++) {
						const result = await this.uploadFilePromise(lists[i].url,event.name)
						let item = this[`fileList${event.name}`][fileListLen]
						this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
							status: 'success',
							message: '',
							url: result
						}))
						fileListLen++
					}
			},
	
			deletePic(event){
				this[`fileList${event.name}`].splice(event.index, 1);
			},
		
			uploadFilePromise(url,num) {
				return new Promise((resolve, reject) => {
					let a = uni.uploadFile({
						url: baseUrl + 'oss/upload', 
						filePath: url,
						name: 'file',
						formData: {},
						success: (res) => {
							res.data = JSON.parse(res.data);
							if (res.data.status == 111111) {
								setTimeout(() => {
									resolve(res.data.data[0].url)
								}, 1000)
							} else {
								uni.showToast({
									title: '上传失败',
									icon: 'none'
								});
								this[`fileList${num}`].pop();
								return
							}
						},
						fail: (error) => {
							uni.showToast({
								title: '上传失败',
								icon: 'none'
							});
							reject(error)
						}
					});
				})
			},
			// 预览图片
			previewFun(num,list){
				let that = this;
				uni.previewImage({
					current:num,
					urls: list,
					longPressActions: {
						itemList: ['发送给朋友', '保存图片', '收藏'],
						success: function(data) {
							console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片');
						},
						fail: function(err) {
							console.log(err.errMsg);
						}
					}
				});
			},
		}
}
</script>

css

<style lang='scss'>

	video{
		width: 210rpx;
		height: 210rpx;
		margin-bottom: 20rpx;
		margin-right: 30rpx;
		border-radius: 8rpx;
	}
	video:nth-child(3n){
		margin-right: 0rpx;
	}
</style>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【uniapp upload】 上传图片和视频 的相关文章

  • Ajax请求后防止自动刷新方法

    Ajax请求后会刷新页面 启用延时函数在刷新后进行jq操作 刷新时间在5 10ms内 在经过这段时间后再进行jq操作
  • 函数重载、函数覆盖以及函数隐藏

    函数重载 是指允许存在多个同名函数 而这些函数的参数表不同 或许参数个数不同 或许参数类型不同 或者两者都不相同 函数重载是发生在同一个类中 调用时 根据参数的不同进行调用 同时编译器在编译期间就确定了要调用的函数 或者说这是一种早期绑定
  • 前端下载文件(Blob)的几种方式使用Blob下载文件

    前端下载文件的几种方式 使用Blob下载文件 在前端下载文件是个很通用的需求 一般后端会提供下载的方式有两种 1 直接返回文件的网络地址 一般用在静态文件上 比如图片以及各种音视频资源等 2 返回文件流 一般用在动态文件上 比如根据前端选择

随机推荐

  • IntelliJ IDEA 必备插件(持续更新...)

    插件名称 功能描述 gitignore 过滤提交到git仓库的文件 Alibaba Java Coding Guidelines 阿里巴巴Java规约检查插件 gitflow Integration git flow集成插件
  • python配置opencv环境

    1 下载python3 7 2 它自带pip 直接输入 pip install opencv python pip install numpy pip install matplotlib 安装不成功则在pip install XXX命令的
  • 《C++语言基础》程序阅读——和对象找感觉

    返回 贺老师课程教学链接 按照封装与信息隐藏的原则 除非特别需要 类中的数据成员需要设置为私有 由此带来的问题是 在类外如何访问这些私有成员 下面4段程序概括了常用的方法 请仔细阅读下面的程序 在阅读过程中 画出对象 变量在内存中的表示图
  • Unity如何把游戏导出成手机安装包

    文章目录 前言 使用环境 步骤 添加模块 添加场景 导出 平台 导出前的设置 构建APK 其他文章 前言 本文章主要演示了 如何将制作好的游戏 导出成APK 安装到手机上 使用环境 Unity2022 步骤 添加模块 确保你已经安装了And
  • Python中sub()用法

    Python来进行查询和替换一个文本字符串 可以使用sub 方法来进行查询和替换 sub方法的格式为 sub replacement string count 0 replacement是被替换成的文本 string是需要被替换的文本 co
  • 编译内核、更新源

    1 ubuntu下面修改更新源 sudo gedit etc apt sources list 2 编译内核 1 cd 到 usr src 下 解压下载的内核源代码包 2 make mrproper 清理生成的文件 貌似对第一次编译内核没有
  • STM32F103 GPIO内部电路图

    GPIO结构图 GPIO工作模式 输入模式 输入浮空 输入上拉 输入下拉 模拟输入 输出模式 开漏输出 开漏复用功能 推挽式输出 推挽式复用功能 输入浮空 输入上拉 输入下拉 模拟输入 开漏输出 开漏复用功能 推挽式输出 推挽式复用功能
  • 掌握Python的X篇_1_认识Python(做什么?;是什么?:控制台使用、Python的本质就是一个exe程序;python是一个翻译器机器:人写的代码转为机器语言)

    掌握Python的X篇 1 认识Python 1 为什么学习Python 2 什么是Python 2 1介绍控制台及其基本使用 2 1 1 控制台的启动方法 2 1 1 控制台及使用 2 1 Python的本质 就是一个exe程序 3 Py
  • xenomai 在X86平台下中断响应时间测试

    版权声明 本文为本文为博主原创文章 转载请注明出处 如有问题 欢迎指正 博客地址 https www cnblogs com wsg1100 本文主要讲述xenomai 在X86平台上的中断响应时间测试 1 中断响应时间 实时操作系统的意义
  • Eclipse的启动问题【an error has occurred see the log file】

    今天打开Eclipse的时候出现来了一个问题 导致了Eclipse打不开 错误的提示是 An error has occurred See the log file 谷歌了一下 解决的办法是 删除eclipse的临时文件 eclipse c
  • html文章整体居中,HTML如何让文字居中?附两种方式

    我们在编写一个网页时 经常需要将文字居中 那么这篇文章小编教你HTML如何让文字居中 方法一 居中标签中可以直接添加align center 样式 使文字居中 具体代码如下 w3cschool 编程狮 w3cschool 编程狮 w3csc
  • 用python分析NBA联盟球员信息,才知道这些秘密!

    作者 锋小刀 微信搜索 Python与Excel之交 关注我的公众号查看更多内容 前言 NBA由北美三十支队伍组成的男子职业篮球联盟 汇集了世界上最顶级的球员 是美国四大职业体育联盟之一 本文爬取了NBA中国官方网站球员信息 进行数据可视化
  • 数据库索引背后的数据结构之B-树和B+树

    文章NO1 数据库查询为什么要使用索引 从理论上讲 假设数据库中的某一个表有108条记录 数据库管理系统一个页面大小4KB 最多能存放100条记录 那么 108条记录将分成 106页来存储 总的存储开销为4KB 106 3906MB 3 8
  • C++实现动态数组

    C 实现动态数组 1 数组初始化 2 给数组赋值 3 打印数组 4 增加数组长度 5 数组最后一个值替代最小值 6 逆置数组元素 7 逆置数组中指定位置范围的元素 8 删除数组中值为x的所有元素 9 删除所有介于s和t之间 包含s与t 的元
  • 永磁同步电机矢量控制(六)——MTPA最大转矩电流比控制

    恰饭一下 已经过了工作的年纪 在这里稍微出一下自己做的一套永磁同步电机的教程 为了解决电机控制入门难的问题 我将自己从一知半解到现在的学习记录整理成十个部分学习教程 从基础的矢量控制 到应用性较强的MTPA 弱磁控制等 最后深入到无速度传感
  • 边缘智能聚焦嵌入式世界

    没有什么超出了我们的想象力的极限 我们习惯于在间谍电影中看到的东西需要进行大规模升级 以超越现在认为的标准 德国纽伦堡 一切都超出了我们的想象范围 而且我们习惯于在间谍电影中看到的东西需要进行大规模升级 以超越现在认为的标准 这在Embed
  • redis 、mysql数据库每秒的访问量

    对于redis redis是内存数据库 数据保存在内存中 当然速度快 理论上 redis是单进程单线程模式 采用队列模式将并发访问转为串行访问 而这种模式不但没有影响它的性能 反而因为这样设计而变得更快 redis是NOSQL 即非关系型数
  • (JS逆向2022.04.11) 某奇艺模拟登陆(不含滑块

    文章目录 目录 文章目录 一 分析参数 二 逆向过程 dfp password qd sc 三 总结 目标网站 aHR0cHM6Ly93d3cuaXFpeWkuY29tLw 文章不做任何商业用途 仅供学习参考 一 分析参数 1 首先抓包查看
  • flutter应用安卓商店合规化处理

    安卓商店在应用上架时会要求用户清楚并授权之后才可收集用户和设备信息 如mac地址 imei等 1 安卓开发者会在application中进行此操作 flutter应用可在main文件中添加授权对话框 flutter的MyApp 可等同看作是
  • 【uniapp upload】 上传图片和视频

    template