import{c as t,o as d,C as e}from"./vendor.ed841bd5.js";const r={class:"markdown-body"},o=e('

Uploader 上传

介绍

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

安装

import { createApp } from 'vue';\nimport { Uploader } from '@nutui/nutui';\n\nconst app = createApp();\napp.use(Uploader);\n\n

代码示例

基本用法

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

自定义上传样式

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

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

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

限制上传数量5个

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

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

<nut-uploader url="http://服务器地址" multiple :maximize="1024 * 50" :before-upload="beforeUpload" @oversize="onOversize"></nut-uploader>\n
setup() {\n    const formData = {\n      custom: 'test'\n    };\n    const onOversize = (files: File[]) => {\n      console.log('oversize 触发 文件大小不能超过 50kb', files);\n    };\n\n    const beforeUpload = (files: File[]) => {\n      //自定义处理\n      return files;\n    }\n   \n    return {\n      onOversize,\n      formData\n    };\n}\n

自定义 FormData headers

<nut-uploader url="http://服务器地址" :data="formData" :headers="formData" :with-Credentials="true"></nut-uploader>\n
setup() {\n    const formData = {\n      custom: 'test'\n    };\n    const onOversize = (files: File[]) => {\n      console.log('oversize 触发 文件大小不能超过 50kb', files);\n    };\n   \n    return {\n      onOversize,\n      formData\n    };\n}\n

禁用状态

<nut-uploader disabled></nut-uploader>\n

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
timeout超时时间,单位为毫秒Number丨String1000 * 30
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
',29),a={expose:[],setup:e=>(e,a)=>(d(),t("div",r,[o]))};export default a;