uniapp 一次性上传多条视频 u-upload accept=“video“ uni.chooseMedia uni.uploadFile

方式 一 部分安卓机 只能一条一条传视频

文档地址 uview 2.0 Upload 上传组件

html

javascript 复制代码
<view class="formupload">
	<u-upload 
	accept="video"
	:fileList="fileList3" @afterRead="afterRead" @delete="deletePic" name="3" multiple
		:maxCount="9"></u-upload>
</view>

script

javascript 复制代码
	// 删除图片
			deletePic(event) {
				this[`fileList${event.name}`].splice(event.index, 1)
			},
			// 新增图片 afterRead
			async afterRead(event) {
				// 当设置 mutiple 为 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(event.name,lists[i].url);
					let item = this[`fileList${event.name}`][fileListLen]
					this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
						status: 'success',
						message: '',
						url: result
					}))
					fileListLen++
				}
			},
			uploadFilePromise(num,url) {
				return new Promise((resolve, reject) => {
					let a = uni.uploadFile({
						url: baseUrl + 'upload', // 上传图片视频的接口名
						filePath: url,
						name: 'file',
						header: {},
						formData: {
							file: url
						},
						success: (res) => {
							res.data = JSON.parse(res.data)
							if (res.data.code == 0) {
								setTimeout(() => {
									resolve(res.data.url)
								}, 1000)
							} else {
								uni.showToast({
									title: '上传失败',
									icon: 'none'
								});
								this[`fileList${num}`].pop()
								return
							}
						},
						fail: (error) => {
							uni.showToast({
								title: '上传失败',
								icon: 'none'
							});
							reject(error)
						}
					});
				})
			},

方式 二 可以一次性上传多条视频

文档地址 video
uni.chooseMedia
uni.uploadFile

html

objectivec 复制代码
	<view class="u-flex wrap">
		<image src="@/static/image/up.png" mode="" class="u-w-160 u-h-160 u-m-r-16 u-m-b-16" 
		@click="upvideoFun" v-if="fileList3.length < 9"></image>
	<view class="vibox" v-for="(item,i) in fileList3" :key="i">
		<video :src="item.url" class="viimg"></video>
		<view class="vitext" @click="delFun(i)">  <text>x</text>  </view>	
	</view>
	</view>

script

javascript 复制代码
	// 上传视频
		 upvideoFun(){
				let that = this;
				uni.chooseMedia({
				  count: 9,
				  mediaType: ['video'],
				  sourceType: ['album', 'camera'],
				  maxDuration: 30,
				  camera: 'back',
				  success(res) {
						let lists = [].concat(res.tempFiles);
						for (let i = 0; i < lists.length; i++) {
								uni.uploadFile({
									url: baseUrl + 'upload',
									filePath: lists[i].tempFilePath,
									name: 'file',
									formData: {},
									success: (resres) => {
										let data = JSON.parse(resres.data);
										that.fileList3.push({
											url:data.url
										});
									}
								});
						}
				  }
				});
			},
	
			// 删除视频
			delFun(i){
				this.fileList3.splice(i, 1);
			},

css

javascript 复制代码
.vibox{
		width: 80px;
		height: 80px;
		position: relative;
		border-radius: 2px;
		margin: 0 8px 8px 0;
		overflow: hidden;
		display: flex;
		flex-direction: row;
		.viimg{
			width: 80px;
			height: 80px;
		}
		.vitext{
			position: absolute;
			top: 0;
			right: 0;
			background-color: #373737;
			height: 14px;
			width: 14px;
			display: flex;
			border-bottom-left-radius: 100px;
			align-items: center;
			justify-content: center;
			z-index: 3;
			text{
				font-size: 10px;
				font-weight: normal;
				top: 0px;
				color: #ffffff;
				transform: translate(1px,-3px);
			}
		}
	}
相关推荐
咸虾米_2 天前
咸虾米壁纸微信小程序下载图片到相册saveImageToPhotosAlbum功能修改
微信小程序·小程序·uniapp·notepad++
~牧马~3 天前
【记录50】uniapp安装uview插件,样式引入失败分析及解决
uniapp·uview插件
流氓也是种气质 _Cookie4 天前
uniapp 将base64字符串保存为图片、Word、Excel、音频、视频等文件
uniapp·base64tofile
!win !7 天前
WebP图片使用踩坑
小程序·uniapp·webp
顽疲7 天前
从零用java实现 小红书 springboot vue uniapp (3)详情页优化
java·vue.js·spring boot·uniapp
程序猿看视界9 天前
uniapp小程序的锚点定位(将页面滚动到目标位置)
uniapp·锚点定位
oil欧哟13 天前
给我的小程序加了个丝滑的搜索功能,踩坑表情包长度问题
前端·vue.js·微信小程序·uniapp
一殊酒23 天前
【前端开发】小程序无感登录验证
前端·小程序·uniapp
竣子好逑1 个月前
uniapp 自定义popup 弹窗 简单封装(微信小程序)
前端·微信小程序·小程序·uni-app·uniapp
h185385922441 个月前
志愿者小程序源码社区网格志愿者服务小程序php
微信小程序·小程序·php·uniapp·源码软件