Uploader 上传

介绍

用于将本地的图片或文件上传至服务器。

安装

  1. import { createApp } from 'vue';
  2. import { Uploader } from '@nutui/nutui';
  3. const app = createApp();
  4. app.use(Uploader);

代码示例

基本用法

  1. <nut-uploader url="http://服务器地址"></nut-uploader>

自定义上传样式

  1. <nut-uploader url="http://服务器地址">
  2. <nut-button type="primary" icon="uploader">上传文件</nut-button>
  3. </nut-uploader>

直接调起摄像头(移动端生效)

  1. <nut-uploader url="http://服务器地址" capture></nut-uploader>

限制上传数量5个

  1. <nut-uploader url="http://服务器地址" multiple maximum="5"></nut-uploader>

限制上传大小(每个文件最大不超过 50kb,也可以在beforeupload中自行处理)

  1. <nut-uploader url="http://服务器地址" multiple :maximize="1024 * 50" :before-upload="beforeUpload" @oversize="onOversize"></nut-uploader>
  1. setup() {
  2. const formData = {
  3. custom: 'test'
  4. };
  5. const onOversize = (files: File[]) => {
  6. console.log('oversize 触发 文件大小不能超过 50kb', files);
  7. };
  8. const beforeUpload = (files: File[]) => {
  9. //自定义处理
  10. return files;
  11. }
  12. return {
  13. onOversize,
  14. formData
  15. };
  16. }

自定义 FormData headers

  1. <nut-uploader url="http://服务器地址" :data="formData" :headers="formData" :with-Credentials="true"></nut-uploader>
  1. setup() {
  2. const formData = {
  3. custom: 'test'
  4. };
  5. const onOversize = (files: File[]) => {
  6. console.log('oversize 触发 文件大小不能超过 50kb', files);
  7. };
  8. return {
  9. onOversize,
  10. formData
  11. };
  12. }

禁用状态

  1. <nut-uploader disabled></nut-uploader>

API

Prop

字段说明类型默认值
nameinput 标签 name 的名称,发到后台的文件参数名String“file”
url上传服务器的接口地址String-
v-model:file-list默认已经上传的文件列表FileItem[][]
is-preview是否上传成功后展示预览图Booleantrue
is-deletable是否展示删除按钮Booleantrue
method上传请求的 http methodString“post”
capture图片选取模式,直接调起摄像头Stringfalse
maximize可以设定最大上传文件的大小(字节)Number丨StringNumber.MAX_VALUE
maximum文件上传数量限制Number丨String1
clear-input是否需要清空input内容,设为true支持重复选择上传同一个文件Booleanfalse
accept允许上传的文件类型,详细说明String*
headers设置上传的请求头部Object{}
data附加上传的信息 formDataObject{}
upload-icon上传区域图标名称或图片链接String“photograph”
xhr-state接口响应的成功状态(status)值Number200
with-credentials支持发送 cookie 凭证信息Booleanfasle
multiple是否支持文件多选Booleanfasle
disabled是否禁用文件上传Booleanfasle
before-upload上传前的函数需要返回一个Promise对象Functionnull
before-delete除文件时的回调,返回值为 false 时不移除。支持返回一个 Promise 对象,Promise 对象 resolve(false) 或 reject 时不移除Function(file): boolean 丨Promise-

FileItem

名称说明默认值
status文件状态值,可选’ready,uploading,success,error,removed’“ready”
uid文件的唯一标识new Date().getTime().toString()
name文件名称“”
url文件路径“”
type文件类型“image/jpeg”
formData上传所需的datanew FormData()

Event

名称说明回调参数
start文件上传开始options
progress文件上传的进度event,options
oversize文件大小超过限制时触发files
success上传成功responseText,options
failure上传失败responseText,options
change上传文件改变时的状态fileList,event
delete文件删除之前的状态files,fileList

Uploader  上传组件 - 图1