uniapp中uview组件库的丰富Upload 上传上午用法

这篇具有很好参考价值的文章主要介绍了uniapp中uview组件库的丰富Upload 上传上午用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

uniapp中uview组件库的丰富Upload 上传上午用法,uniapp,uni-app,前端,javascript

目录

基础用法

#上传视频

#文件预览

#隐藏上传按钮

#限制上传数量

#自定义上传样式

API

#Props

#Methods

#Slot

#Events


基础用法

  • 可以通过设置fileList参数(数组,元素为对象),显示预置的图片。其中元素的url属性为图片路径
<template>
	<u-upload
		:fileList="fileList1"
		@afterRead="afterRead"
		@delete="deletePic"
		name="1"
		multiple
		:maxCount="10"
	></u-upload>
</template>

<script>
	export default {
		data() {
			return {
				fileList1: [],
			}
		},
		methods:{
			// 删除图片
			deletePic(event) {
				this[`fileList${event.name}`].splice(event.index, 1)
			},
			// 新增图片
			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)
					let item = this[`fileList${event.name}`][fileListLen]
					this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
						status: 'success',
						message: '',
						url: result
					}))
					fileListLen++
				}
			},
			uploadFilePromise(url) {
				return new Promise((resolve, reject) => {
					let a = uni.uploadFile({
						url: 'http://192.168.2.21:7001/upload', // 仅为示例,非真实的接口地址
						filePath: url,
						name: 'file',
						formData: {
							user: 'test'
						},
						success: (res) => {
							setTimeout(() => {
								resolve(res.data.data)
							}, 1000)
						}
					});
				})
			},
		}

	}
</script>

#上传视频

  • 通过设置accept='video'属性,将上传改为视频上传。
<u-upload
	:fileList="fileList2"
	@afterRead="afterRead"
	@delete="deletePic"
	name="2"
	multiple
	:maxCount="10"
	accept="video"
></u-upload>
<!-- data 方法请参考 基本用法 -->
data(){
	return{
		fileList2: [],
	}
}

#文件预览

  • 通过设置:previewFullImage="true"'属性,达到文件预览的目的。
<u-upload
	:fileList="fileList3"
	@afterRead="afterRead"
	@delete="deletePic"
	name="3"
	multiple
	:maxCount="10"
	:previewFullImage="true"
></u-upload>
<!-- data 方法请参考 基本用法 -->
data(){
	return{
		fileList3: [{
			url: 'https://cdn.uviewui.com/uview/swiper/1.jpg',
		}],
	}
}

#隐藏上传按钮

  • 上传数量等于maxCount所规定的数据时,隐藏上传按钮。
<u-upload
	:fileList="fileList4"
	@afterRead="afterRead"
	@delete="deletePic"
	name="4"
	multiple
	:maxCount="2"
></u-upload>
<!-- data 方法请参考 基本用法 -->
data(){
	return{
		fileList4: [{
				url: 'https://cdn.uviewui.com/uview/swiper/1.jpg',
			},
			{
				url: 'https://cdn.uviewui.com/uview/swiper/1.jpg',
			}
		],
	}
}

#限制上传数量

  • 同上,规定maxCount的数据时。
<u-upload
	:fileList="fileList5"
	@afterRead="afterRead"
	@delete="deletePic"
	name="5"
	multiple
	:maxCount="3"
></u-upload>
<!-- data 方法请参考 基本用法 -->
data(){
	return{
		fileList5: [],
	}
}

#自定义上传样式

  • 添加image以自定义上传样式,达到身份证,银行卡等不同场景需求。
<u-upload
	:fileList="fileList6"
	@afterRead="afterRead"
	@delete="deletePic"
	name="6"
	multiple
	:maxCount="1"
	width="250"
	height="150"
>
	<image src="https://cdn.uviewui.com/uview/demo/upload/positive.png" 
	mode="widthFix" style="width: 250px;height: 150px;"></image>
</u-upload>
<!-- data 方法请参考 基本用法 -->
data(){
	return{
		fileList6: [],
	}
}

API

#Props

参数 说明 类型 默认值 可选值
accept 接受的文件类型,file只支持H5(只有微信小程序才支持把accept配置为all、media) String image all | media | image | file | video
capture 图片或视频拾取模式,当accept为image类型时设置capture可选额外camera可以直接调起摄像头 String | Array ['album', 'camera'] -
compressed 当accept为video时生效,是否压缩视频,默认为true Boolean true false
camera 当accept为video时生效,可选值为back或front String back -
maxDuration 当accept为video时生效,拍摄视频最长拍摄时间,单位秒 Number 60 true
uploadIcon 上传区域的图标,只能内置图标 String camera-fill -
uploadIconColor 上传区域的图标的颜色 String #D3D4D6 -
useBeforeRead 是否启用(显示/隐藏)组件 Boolean false true
previewFullImage previewFullImage Boolean true false
maxCount 最大选择图片的数量 String | Number 52 -
disabled 是否启用(显示/隐藏)组件 Boolean false true
imageMode 预览上传的图片时的裁剪模式,和image组件mode属性一致 String aspectFill -
name 标识符,可以在回调函数的第二项参数中获取 String file -
sizeType original 原图,compressed 压缩图,默认二者都有,H5无效 Array<String> ['original', 'compressed'] -
multiple 是否开启图片多选,部分安卓机型不支持 Boolean false true
deletable 是否显示删除图片的按钮 Boolean true false
maxSize 选择单个文件的最大大小,单位B(byte),默认不限制 String | Number Number.MAX_VALUE -
fileList 显示已上传的文件列表 Array - -
uploadText 上传区域的提示文字 String - -
width 内部预览图片区域和选择图片按钮的区域宽度,单位rpx,不能是百分比,或者auto String | Number 80 -
height 内部预览图片区域和选择图片按钮的区域高度,单位rpx,不能是百分比,或者auto String | Number 80 -
previewImage 是否在上传完成后展示预览图 Boolean true false

#Methods

此方法如要通过ref手动调用

名称 说明
afterRead 读取后的处理函数
beforeRead 读取前的处理函数

#Slot

slot中您可以内置任何您所需要的样式。

名称 说明
-(default) 自定义上传样式

#Events

回调参数中的event参数,为当前删除元素的所有信息,index为当前操作的图片的索引,name为删除名称,file包含删除的url信息文章来源地址https://www.toymoban.com/news/detail-767129.html

事件名 说明 回调参数
afterRead 读取后的处理函数 (file, lists, name),错误信息
beforeRead 读取前的处理函数 (file, lists, name),错误信息
oversize 图片大小超出最大允许大小 (file, lists, name), name为通过props传递的index参数
clickPreview 全屏预览图片时触发 (url, lists, name),url为当前选中的图片地址,index为通过props传递的index参数
delete 删除图片 传递index 回调 event 参数 包含index,file,name

到了这里,关于uniapp中uview组件库的丰富Upload 上传上午用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【uniapp】uview1.x使用upload上传图片

    和2.x不同的是,要用 action 来配置后端上传图片的接口地址; 再来一些配置项的命名有所不同,一般1.x的命名用 - ,2.x的命名使用小驼峰; 1.x 的上传会自带删除时的提示框,2.x 没有; 重要的几个配置项有: picList 初始化为一个空数组,是用来保存图片的列表 baseUrl 为后端上

    2024年02月07日
    浏览(38)
  • uniapp中uview组件库丰富的CountDown 倒计时使用方法

    目录 #平台差异说明 #基本使用 #设置是否显示天,时,分,秒 #倒计时分隔符 #倒计时样式 #倒计时执行的时机 #如何获取当前倒计的秒数 #API #Props #Events #Methods 该组件一般使用于某个活动的截止时间上,通过数字的变化,给用户明确的时间感受,提示用户进行某一个行为操作

    2024年02月02日
    浏览(40)
  • uniapp中uview组件库的NoticeBar 滚动通知 使用方法

    目录 #平台差异说明 #基本使用 #配置主题 #配置图标 #配置滚动速度 #控制滚动的开始和暂停 #事件回调 #API #Props #Events 该组件用于滚动通告场景,有多种模式可供选择 #平台差异说明 App H5 微信小程序 支付宝小程序 百度小程序 头条小程序 QQ小程序 √ √ √ √ √ √ √ #基本使

    2024年01月18日
    浏览(72)
  • uniapp中uview组件库的AlertTips 警告提示使用方法

    目录 #使用场景 #平台差异说明 #基本使用 #图标 #可关闭的警告提示 #API #Props #Events 警告提示,展现需要关注的信息。 #使用场景 当某个页面需要向用户显示警告的信息时。 非浮层的静态展现形式,始终展现,不会自动消失,用户可以点击关闭。 #平台差异说明 App H5 微信小程

    2024年01月17日
    浏览(80)
  • uniapp初体验———uView组件库的使用与钉钉小程序的运行

                这周学长给了我一个校企合作的项目,要求是用uniapp开发,最终打包成钉钉小程序,不过我并不会uniapp,也是学了一段时间,开始写项目,中间也遇到过很多问题,比如开发者工具还有如何运行到开发者工具以及组件库的使用,这些虽然都是一些基础的问题

    2024年02月14日
    浏览(45)
  • uniApp 封装Upload组件实现图片和视频上传,解决官方api单一上传问题

     uniapp 官方api没有同时上传图片和视频的组件,所以就只能自己做了,在此记录下! 这里之所以循环一个一个上传是因为,我是用于小程序端的,目前uniapp不支持微信小程序以文件列表形式上传, filePath: item, //改为files可实现一次上传多个文件,仅App、H5( 2.6.15+)支持 具体

    2024年02月14日
    浏览(42)
  • uniapp 之使用 u-upload 组件来实现图片上传

    在使用 uniapp 开发的微信小程序中使用了图片上传功能,使用了 uniapp 的图片上传组件 注意:我这里后端接口接收类型为form-data,参数名为files uview 1.0 u-upload 官方文档 首先可以看到 u-upload ref=\\\"uUpload\\\" :action=\\\"action\\\" :auto-upload=\\\"true\\\" 这里的 :auto-upload=\\\"true\\\" ,这里是设置文件选中后自动

    2024年02月02日
    浏览(40)
  • 开发微信小程序使用 uview 的upload组件时,点击无反应问题记录

    使用uniapp+uview开发微信小程序使用 u-upload组件所遇到过的问题记录。待持续完善 ... 原因一:可能是《用户隐私保护指引》未授权导致的。 1:自定义隐私授权组件,在小程序首页引入。 2:到小程序公众平台-设置-基本设置-服务内容声明-用户隐私保护指引,完善好后,等待

    2024年02月04日
    浏览(50)
  • uniapp + uview —— 上传图片

    index.vue 接口、请求头部 方法

    2024年02月12日
    浏览(38)
  • Vue Element upload组件和Iview upload 组件上传文件

    今天要分享的是使用这俩个UI组件库的upload组件分别实现调用组件本身的上传方法实现和后台交互。接下来就是开车的时间,请坐稳扶好~ 一、element upload组件传送门  1、html文件 注意事项: 使用组件本身的上传事件,必须加auto-upload属性设置为false;                 

    2024年02月11日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包