Skip to content

UploadMedia 媒体上传 ​

查看 sn-upload-media 的 2.0 版本差异

基础用法 ​

  • 用于快速选择并上传图片 / 视频媒体文件,分为基础版(sn-upload-media)和 uniCloud 版(sn-upload-media-unicloud)
  • 支持选择、预览、删除、状态角标展示,选择后可自动上传,也可通过 upload 方法手动上传
  • 添加项(占位符)可经默认插槽自定义,未传插槽时显示加号图标
vue
<template>
	<sn-upload-media url="https://example.com/upload" :timeout="30000"></sn-upload-media>
</template>

说明:timeout 默认 30000(30s)。上传请求在超时时间内未完成(含未配置有效服务器地址导致的连接挂起,或 H5 HTTPS 页面拦截 HTTP 上传请求)会被中止,状态置为「上传失败」并触发 upload-error 事件。

更多演示请下载 demo 查看

属性 ​

参数说明类型默认值可选值
url上传地址String--
autoUpload是否在选择后自动上传;设为 false 时可通过 upload 方法手动上传Booleantruetrue | false
mode媒体模式Stringimageimage | video | all
chooseCount一次可选择的文件数量(视频每次仅 1 个)Number20-
maxCount最多可上传的文件数量,小于等于 0 不限制Number-1-
timeout上传超时时间(单位:ms),超时后中止请求并触发 upload-error,状态置为上传失败;H5 HTTPS 页面拦截 HTTP 上传请求时也按此计时Number30000-
formData附加到上传请求的表单数据UTSJSONObject{}-
sourceType可选择媒体的来源Array<String>["album", "camera"]album | camera
width媒体文件子项宽度String | Number70px-
height媒体文件子项高度String | Number70px-
itemBgColor占位项背景颜色String$line$primary 等主题色
itemBorderRadius媒体文件子项圆角String | Number$8-
iconSize占位项中央图标大小String | Number40px-
disabled是否禁用选择、预览与删除Booleanfalsetrue | false
chooseErrorTip选择媒体失败时的提示信息String选择媒体文件失败-
enablePreview是否启用点击图片预览,仅图片生效Booleantruetrue | false
uploadingText上传中的状态文本String上传中-
uploadedText上传成功的状态文本String上传成功-
unuploadedText未上传的状态文本String未上传-
errorText上传失败的状态文本String上传失败-
clearable是否显示删除按钮Booleantruetrue | false
compressed是否压缩视频,仅视频模式生效Booleantruetrue | false
maxDuration录像最大时长(单位:s),仅视频模式生效Number60-
customStyle自定义整个上传区域样式UTSJSONObject | String--
customItemStyle自定义媒体文件子项样式UTSJSONObject | String--

sn-upload-media-unicloud 属性 ​

uniCloud 版上传至云存储,无 url、timeout、formData 属性(上传走 uniCloud.uploadFile),其余属性与上表一致,额外新增:

参数说明类型默认值可选值
directory上传至云存储的目录,与随机生成的文件名拼合为云路径;开头 / 与结尾 / 会被自动规整StringuploadImages/-

事件 ​

基础版与 uniCloud 版事件名一致,差异仅在 uploaded 的回调参数类型(基础版 UploadFileSuccess,uniCloud 版 UniCloudUploadFileResult)。

名称类型说明
uploaded(response: UploadFileSuccess) => Void每个文件上传成功时触发(uniCloud 版为 UniCloudUploadFileResult)
upload-error(error: UniError) => Void每个文件上传失败时触发
choose-error(error: UniError) => Void选择媒体文件失败时触发(用户主动取消不触发)
image-chose(res: ChooseImageSuccess) => Void选择图片成功时触发
video-chose(res: ChooseVideoSuccess) => Void选择视频成功时触发
file-chose(files: SnFile[]) => Void混合模式选择文件(图片和视频)成功时触发

UniError 为 uni-app x 运行时内置的统一错误类型(uni 错误规范),全局 API 失败时通过 fail 回调返回。

名称类型描述
errSubjectString错误主题(模块)名称,多级模块使用 :: 分割
errCodeNumber错误码,见错误码对照表
errMsgString错误描述信息
causeSourceError | UniAggregateError | null源错误信息

详见错误处理机制。

文件信息:filename(文件名)、path(路径)、size(大小)、ext(扩展名)。


方法 ​

名称参数返回值描述
upload--手动上传所有未上传 / 上传失败的文件

插槽 ​

名称说明
default替换默认的媒体文件占位项

使用 MIT 协议