0.0.2 • Published 2 years ago

plduoa v0.0.2

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

plduoa

brage

plduoa 是一个原生 JavaScript 编写的轻量级文件上传库,依赖 HTML5File API

目前暂时不支持大文件分片上传和拖拽上传功能。

Install

# npm
npm install plduoa

# yarn 
yarn add plduoa

Usage

支持多种引用方式:

  • 支持 cjs
  • 支持 import
  • 支持 esm
import Uploader from 'plduoa'

let upload = new Uploader({
    dom: document.querySelector('.uploader-btn'),
    action: 'http://localhost:8000/upload'
})

支持事件机制

upload.on('fileAdded', (file) => {
    console.log(file)
})

upload.on('filesSubmitted', (files) => {
    console.log(files)
})

配置

字段名说明类型默认值
dom用来触发选择文件的资源弹窗的 dom 节点Element[]
multiple支持多文件上传booleanfalse
accept限制允许选择的文件类型,更多格式见“常用 MIME 类型”表格string''
action文件上传的接口string''
name文件上传时,formData中表示二进制资源的字段名stringfile
limitmultiple = true 时,限制选择的文件数量,注:后选择的文件会替换掉先前选择的number1
withCredentials允许在 action 是跨域场景下,携带cookie发送请求booleanfalse
method请求的方式,注:不支持 GET ,目前只支持 POSTPUTOPTIONSstringPOST
data发送请求时,携带的一些其他参数Object{}
headers发送请求时,携带的一些其他请求头部Object{}
attributes可以在创建的 <input type="file"> dom上添加一些自定义属性,如:Object{}

方法

方法名说明可接收参数返回值
upload将已选择的文件全部进行上传--
resume上次上传失败的文件再一次上传--
abort取消正在上传中的所有文件--
cancel将已选择的文件全部删除--
addFile手动添加单个文件(files: File, event: Event)-
addFiles手动添加多个文件(files: FileList, event: Event)-
remove移除指定文件file-

属性

名称说明返回值
progress全部文件上传的总进度平均值0~1
size全部文件总的大小,单位 b> 0

事件

事件名称说明参数返回值
progress每当任意文件的上传进度发变化时,就会触发--
uploadStart当文件开始上传时触发--
resume将上传失败的文件进行再一次上传时触发--
fileAdded每个文件添加到队列中时会触发(uploadFile, event)-
filesSubmitted全部文件添加到队列中时会触发(files, event)
fileRemoved移除文件时触发(file)

常用 MIME 类型

<!--只支持图片格式的文件-->
<input type="file" id="imageFile" accept="image/*">
文件类型accept属性值类型
*.3gppaudio/3gpp, video/3gpp3GPP Audio/Video
*.ac3audio/ac3AC3 Audio
*.asfallpication/vnd.ms-asfAdvanced Streaming Format
*.auaudio/basicAU Audio
*.csstext/cssCascading Style Sheets
*.csvtext/csvComma Separated Values
*.docapplication/mswordMS Word Document
*.dotapplication/mswordMS Word Template
*.dtdapplication/xml-dtdDocument Type Definition
*.dwgimage/vnd.dwgAutoCAD Drawing Database
*.dxfimage/vnd.dxfAutoCAD Drawing Interchange Format
*.gifimage/gifGraphic Interchange Format
*.htmtext/htmlHyperText Markup Language
*.htmltext/htmlHyperText Markup Language
*.jp2image/jp2JPEG-2000
*.jpeimage/jpegJPEG
*.jpegimage/jpegJPEG
*.jpgimage/jpegJPEG
*.jstext/javascript, application/javascriptJavaScript
*.jsonapplication/jsonJavaScript Object Notation
*.mp2audio/mpeg, video/mpegMPEG Audio/Video Stream, Layer II
*.mp3audio/mpegMPEG Audio Stream, Layer III
*.mp4audio/mp4, video/mp4MPEG-4 Audio/Video
*.mpegvideo/mpegMPEG Video Stream, Layer II
*.mpgvideo/mpegMPEG Video Stream, Layer II
*.mppapplication/vnd.ms-projectMS Project Project
*.oggapplication/ogg, audio/oggOgg Vorbis
*.pdfapplication/pdfPortable Document Format
*.pngimage/pngPortable Network Graphics
*.potapplication/vnd.ms-powerpointMS PowerPoint Template
*.ppsapplication/vnd.ms-powerpointMS PowerPoint Slideshow
*.pptapplication/vnd.ms-powerpointMS PowerPoint Presentation
*.rtfapplication/rtf, text/rtfRich Text Format
*.svfimage/vnd.svfSimple Vector Format
*.tifimage/tiffTagged Image Format File
*.tiffimage/tiffTagged Image Format File
*.txttext/plainPlain Text
*.wdbapplication/vnd.ms-worksMS Works Database
*.wpsapplication/vnd.ms-worksWorks Text Document
*.xhtmlapplication/xhtml+xmlExtensible HyperText Markup Language
*.xlcapplication/vnd.ms-excelMS Excel Chart
*.xlmapplication/vnd.ms-excelMS Excel Macro
*.xlsapplication/vnd.ms-excelMS Excel Spreadsheet
*.xltapplication/vnd.ms-excelMS Excel Template
*.xlwapplication/vnd.ms-excelMS Excel Workspace
*.xmltext/xml, application/xmlExtensible Markup Language
*.zipapplication/zip application/x-zip-compressedCompressed Archive