import{e as t,o as a,G as n}from"./vendor.d721e0a0.js";const l={class:"markdown-body"},d=n(`

Uploader \u4E0A\u4F20

\u4ECB\u7ECD

\u7528\u4E8E\u5C06\u672C\u5730\u7684\u56FE\u7247\u6216\u6587\u4EF6\u4E0A\u4F20\u81F3\u670D\u52A1\u5668\u3002

\u5B89\u88C5

import { createApp } from 'vue';
import { Uploader,Icon } from '@nutui/nutui';

const app = createApp();
app.use(Uploader);
app.use(Icon);

\u57FA\u672C\u7528\u6CD5

<nut-uploader url="http://\u670D\u52A1\u5668\u5730\u5740"></nut-uploader>

\u81EA\u5B9A\u4E49\u4E0A\u4F20\u6837\u5F0F

<nut-uploader url="http://\u670D\u52A1\u5668\u5730\u5740">
  <nut-button type="primary" icon="uploader">\u4E0A\u4F20\u6587\u4EF6</nut-button>
</nut-uploader>

\u76F4\u63A5\u8C03\u8D77\u6444\u50CF\u5934\uFF08\u79FB\u52A8\u7AEF\u751F\u6548\uFF09

<nut-uploader url="http://\u670D\u52A1\u5668\u5730\u5740" capture></nut-uploader>

\u9650\u5236\u4E0A\u4F20\u6570\u91CF5\u4E2A

<nut-uploader url="http://\u670D\u52A1\u5668\u5730\u5740" multiple maximum="5"></nut-uploader>

\u9650\u5236\u4E0A\u4F20\u5927\u5C0F\uFF08\u6BCF\u4E2A\u6587\u4EF6\u6700\u5927\u4E0D\u8D85\u8FC7 50kb\uFF0C\u4E5F\u53EF\u4EE5\u5728beforeupload\u4E2D\u81EA\u884C\u5904\u7406\uFF09

<nut-uploader url="http://\u670D\u52A1\u5668\u5730\u5740" multiple :maximize="1024 * 50" :before-upload="beforeUpload" @oversize="onOversize"></nut-uploader>
setup() {
    const formData = {
      custom: 'test'
    };
    const onOversize = (files: File[]) => {
      console.log('oversize \u89E6\u53D1 \u6587\u4EF6\u5927\u5C0F\u4E0D\u80FD\u8D85\u8FC7 50kb', files);
    };

    const beforeUpload = (files: File[]) => {
      //\u81EA\u5B9A\u4E49\u5904\u7406
      return files;
    }
   
    return {
      onOversize,
      formData
    };
}

\u81EA\u5B9A\u4E49 FormData headers

<nut-uploader url="http://\u670D\u52A1\u5668\u5730\u5740" :data="formData" :headers="formData" :with-Credentials="true"></nut-uploader>
setup() {
    const formData = {
      custom: 'test'
    };
    const onOversize = (files: File[]) => {
      console.log('oversize \u89E6\u53D1 \u6587\u4EF6\u5927\u5C0F\u4E0D\u80FD\u8D85\u8FC7 50kb', files);
    };
   
    return {
      onOversize,
      formData
    };
}

\u624B\u52A8\u4E0A\u4F20

<nut-uploader url="http://\u670D\u52A1\u5668\u5730\u5740" maximum="5" :auto-upload="false" ref="uploadRef"></nut-uploader>
<nut-button type="success" size="small" @click="submitUpload">\u6267\u884C\u4E0A\u4F20</nut-button>
import { ref } from 'vue';
setup() {
    const uploadRef = ref<any>(null);
    const submitUpload = () => {
      uploadRef.value.submit();
    };
    return {
      uploadRef,
      submitUpload
    };
}

\u7981\u7528\u72B6\u6001

<nut-uploader disabled></nut-uploader>

Prop

\u5B57\u6BB5\u8BF4\u660E\u7C7B\u578B\u9ED8\u8BA4\u503C
auto-upload\u662F\u5426\u5728\u9009\u53D6\u6587\u4EF6\u540E\u7ACB\u5373\u8FDB\u884C\u4E0A\u4F20\uFF0Cfalse \u65F6\u9700\u8981\u624B\u52A8\u6267\u884C ref submit \u65B9\u6CD5\u8FDB\u884C\u4E0A\u4F20Booleantrue
nameinput \u6807\u7B7E name \u7684\u540D\u79F0\uFF0C\u53D1\u5230\u540E\u53F0\u7684\u6587\u4EF6\u53C2\u6570\u540DString\u201Cfile\u201D
url\u4E0A\u4F20\u670D\u52A1\u5668\u7684\u63A5\u53E3\u5730\u5740String-
v-model:file-list\u9ED8\u8BA4\u5DF2\u7ECF\u4E0A\u4F20\u7684\u6587\u4EF6\u5217\u8868FileItem[][]
is-preview\u662F\u5426\u4E0A\u4F20\u6210\u529F\u540E\u5C55\u793A\u9884\u89C8\u56FEBooleantrue
is-deletable\u662F\u5426\u5C55\u793A\u5220\u9664\u6309\u94AEBooleantrue
method\u4E0A\u4F20\u8BF7\u6C42\u7684 http methodString\u201Cpost\u201D
capture\u56FE\u7247\u9009\u53D6\u6A21\u5F0F\uFF0C\u76F4\u63A5\u8C03\u8D77\u6444\u50CF\u5934Stringfalse
maximize\u53EF\u4EE5\u8BBE\u5B9A\u6700\u5927\u4E0A\u4F20\u6587\u4EF6\u7684\u5927\u5C0F\uFF08\u5B57\u8282\uFF09Number\u4E28StringNumber.MAX_VALUE
maximum\u6587\u4EF6\u4E0A\u4F20\u6570\u91CF\u9650\u5236Number\u4E28String1
clear-input\u662F\u5426\u9700\u8981\u6E05\u7A7Ainput\u5185\u5BB9\uFF0C\u8BBE\u4E3Atrue\u652F\u6301\u91CD\u590D\u9009\u62E9\u4E0A\u4F20\u540C\u4E00\u4E2A\u6587\u4EF6Booleanfalse
accept\u5141\u8BB8\u4E0A\u4F20\u7684\u6587\u4EF6\u7C7B\u578B\uFF0C\u8BE6\u7EC6\u8BF4\u660EString*
headers\u8BBE\u7F6E\u4E0A\u4F20\u7684\u8BF7\u6C42\u5934\u90E8Object{}
data\u9644\u52A0\u4E0A\u4F20\u7684\u4FE1\u606F formDataObject{}
upload-icon\u4E0A\u4F20\u533A\u57DF\u56FE\u6807\u540D\u79F0\u6216\u56FE\u7247\u94FE\u63A5String\u201Cphotograph\u201D
upload-icon-size\u4E0A\u4F20\u533A\u57DF\u56FE\u6807\u5C3A\u5BF8\u5927\u5C0F\uFF0C\u5982 20px 2em 2remString or Number-
xhr-state\u63A5\u53E3\u54CD\u5E94\u7684\u6210\u529F\u72B6\u6001\uFF08status\uFF09\u503CNumber200
with-credentials\u652F\u6301\u53D1\u9001 cookie \u51ED\u8BC1\u4FE1\u606FBooleanfasle
multiple\u662F\u5426\u652F\u6301\u6587\u4EF6\u591A\u9009Booleanfasle
disabled\u662F\u5426\u7981\u7528\u6587\u4EF6\u4E0A\u4F20Booleanfasle
timeout\u8D85\u65F6\u65F6\u95F4\uFF0C\u5355\u4F4D\u4E3A\u6BEB\u79D2Number\u4E28String1000 * 30
before-upload\u4E0A\u4F20\u524D\u7684\u51FD\u6570\u9700\u8981\u8FD4\u56DE\u4E00\u4E2APromise\u5BF9\u8C61Functionnull
before-delete\u9664\u6587\u4EF6\u65F6\u7684\u56DE\u8C03\uFF0C\u8FD4\u56DE\u503C\u4E3A false \u65F6\u4E0D\u79FB\u9664\u3002\u652F\u6301\u8FD4\u56DE\u4E00\u4E2A Promise \u5BF9\u8C61\uFF0CPromise \u5BF9\u8C61 resolve(false) \u6216 reject \u65F6\u4E0D\u79FB\u9664Function(file): boolean \u4E28Promise-

FileItem

\u540D\u79F0\u8BF4\u660E\u9ED8\u8BA4\u503C
status\u6587\u4EF6\u72B6\u6001\u503C\uFF0C\u53EF\u9009\u2019ready,uploading,success,error,removed\u2019\u201Cready\u201D
uid\u6587\u4EF6\u7684\u552F\u4E00\u6807\u8BC6new Date().getTime().toString()
name\u6587\u4EF6\u540D\u79F0\u201C\u201D
url\u6587\u4EF6\u8DEF\u5F84\u201C\u201D
type\u6587\u4EF6\u7C7B\u578B\u201Cimage/jpeg\u201D
formData\u4E0A\u4F20\u6240\u9700\u7684datanew FormData()

Event

\u540D\u79F0\u8BF4\u660E\u56DE\u8C03\u53C2\u6570
start\u6587\u4EF6\u4E0A\u4F20\u5F00\u59CBoptions
progress\u6587\u4EF6\u4E0A\u4F20\u7684\u8FDB\u5EA6event,options
oversize\u6587\u4EF6\u5927\u5C0F\u8D85\u8FC7\u9650\u5236\u65F6\u89E6\u53D1files
success\u4E0A\u4F20\u6210\u529FresponseText,options
failure\u4E0A\u4F20\u5931\u8D25responseText,options
change\u4E0A\u4F20\u6587\u4EF6\u6539\u53D8\u65F6\u7684\u72B6\u6001fileList,event
delete\u6587\u4EF6\u5220\u9664\u4E4B\u524D\u7684\u72B6\u6001files,fileList

Methods

\u901A\u8FC7 ref \u53EF\u4EE5\u83B7\u53D6\u5230 Uploader \u5B9E\u4F8B\u5E76\u8C03\u7528\u5B9E\u4F8B\u65B9\u6CD5

\u65B9\u6CD5\u540D\u8BF4\u660E\u53C2\u6570\u8FD4\u56DE\u503C
submit\u624B\u52A8\u4E0A\u4F20\u6A21\u5F0F\uFF0C\u6267\u884C\u4E0A\u4F20\u64CD\u4F5C--
clearUploadQueue\u6E05\u7A7A\u5DF2\u9009\u62E9\u7684\u6587\u4EF6\u961F\u5217\uFF08\u8BE5\u65B9\u6CD5\u4E00\u822C\u914D\u5408\u5728\u624B\u52A8\u6A21\u5F0F\u4E0A\u4F20\u65F6\u4F7F\u7528\uFF09--
`,33),p=[d],u={setup(e,{expose:s}){return s({frontmatter:{}}),(o,c)=>(a(),t("div",l,p))}};export{u as default};