基于H5的easyUpload.js多文件批量上传实例

所需积分  10 7132
基于H5的easyUpload.js多文件批量上传实例

一款简单易用、可配置的H5/Web上传插件。支持多文件上传批量上传,混合上传,以及多实例上传。

特性

文件类型可配置

文件数量可配置

文件大小可配置

上传前文件可预览

展示上传实时进度条

批量上传

支持不同类型文件混合上传

支持自由配置 base64 或 FormData 等数据格式

支持自由配置请求头等,api保持和原生api一致

支持自由配置请求成功状态码

css与结构分离,支持自由定制样式

原生js编写,不依赖任何类库

使用说明

html页面内引入easyUpload.min.js和easy_upload.min.css,简单配置后即可使用

生产环境建议使用dist文件夹内压缩代码,二次开发测试可参考src文件夹内源代码

配置说明

// easyUpload(configs)
easyUpload({
   easyId: 'easy1',
   action: 'https://jsonplaceholder.typicode.com/posts/',
   accept: '.jpg,.png,.gif,.pdf,.docx',
   maxSize: 3, //单位MB
   showLoading: true,
   setRequestHeader: function(xhr) {
       xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
       //和原生xhr配置api保持一致
   },
   buildSendData: function(file) {
       // var formData = new FormData(); // 发送格式为formData时
       // formData.append('name', file.file)
       // return formData;
       // return file.base64; //发送格式为base64时
       return null; //发送空数据,用于测试。默认return null
   },
   checkSuccessCode: function(xhr) {
       if (/error/.test(xhr.responseText.toLowerCase())) { //这里判断仅仅用于测试,具体看项目
           return false;
       } else {
           return true;
       } //默认return true
   },
   uploadStart: function(self) {
        // 文件队列上传前的回调函数,传入唯一参数'self'是当前插件实例
        console.log('上传开始,现在的队列是', self.files)
   },
   uploadEnd: function(self) {
        // 文件队列上传完成后的回调函数,传入唯一参数'self'是当前插件实例
        console.log('上传完成了,现在的队列是', self.files)
   }
});

参数说明

// 以下为默认配置,重新配置后将覆盖
 var defaultConfigs = {
     easyId: '', //插件插入节点的Id,String类型
     accept: '.jpg,.png,.pdf', //允许文件类型后缀名,逗号分隔,String类型
     action: '', //上传文件地址,String类型
     btnText: {  //按钮展示文字
         select: '选择文件',
         upload: '上传',
         delete: '删除',
         cancel: '终止'
     },
     maxCount: 3, //插件单次添加文件的最大数量,Number类型
     maxSize: 3, //允许上传文件的最大体积,单位MB,Number类型
     multiple: true, //是否开启多文件上传,Boolean类型
     messageTime: 2000, //messageBox消息提示毫秒数,Number类型
     responseType: 'text', //xhr的responseType格式,String类型
     showSize: true, //是否展示文件体积,Boolean类型
     showLoading: false, //是否展示上传loading动画,Boolean类型
     statusText: {  //不同状态展示的提示文字,key为对应文件状态(不可修改),value为展示文字
         0: '允许上传', //文件大小验证合格后的初始状态
         1: '即将上传', //等待上传队列执行到自己时的状态
         2: '0%',      //上传时刚发出xhr还没响应时的状态
         3: '上传成功',  //xhr响应&上传成功时的状态
         4: '上传失败',  //xhr响应&上传失败时的状态
         5: '体积超出',  //检测文件大小超出限定值时的状态
     },
     statusTextColor: {  //不同状态'提示文字'标签的className,key为对应文件状态(不可修改),value为标签的className
         0: 'normalcolor',  //正常状态字体色的className
         1: 'normalcolor',  //正常状态字体色的className
         2: 'normalcolor',  //正常状态字体色的className
         3: 'normalcolor',  //正常状态字体色的className
         4: 'failedcolor',  //失败状态字体色的className
         5: 'warncolor',    //警告状态字体色的className
     },
     statusBg: {  //不同状态对应标签的className,key为对应文件状态(不可修改),value为标签的className
         0: 'normalbg',  //正常状态背景色的className
         1: 'normalbg',  //正常状态背景色的className
         2: 'normalbg',  //正常状态背景色的className
         3: 'normalbg',  //正常状态背景色的className
         4: 'failedbg',  //失败状态背景色的className
         5: 'warnbg',    //警告状态背景色的className
     },
     timeout: 0, //请求超时毫秒数,0表示永久,Number类型
     withCredentials: true, //是否允许请求头自带cookie等证书,Boolean类型
     setRequestHeader: null, //配置xhr请求头的方法
     buildSendData: null, //配置xhr发送数据格式的方法,返回data
     checkSuccessCode: null, //检查成功状态码的方法,返回布尔值,默认返回true
     uploadStart: null, //每个文件队列上传前的回调函数,传入参数'self'是当前easyUpload实例,可通过self.files查看队列文件
     uploadEnd: null //每个文件队列上传完成后的回调函数,传入参数'self'是当前easyUpload实例,可通过self.files查看队列文件
 };


展开

jQuery年终奖抽奖系统代码

公司年终奖抽奖系统,基于jQuery,兼容Chrome,火狐等现代浏览器,其他浏览器未做兼容性测试

基于Vue.js的表格分页组件-BootPage

基于Vue.js的表格分页组件-BootPage,一款支持静态数据和服务器数据的表格分页组件,支持调整每页显示行数和页码显示个数,样式基于bootstrap。注:在使用ES6及vue-loader的vue项目中才能使用本组件,请求本地jso

Element UI表单设计及代码生成器

Element UI表单设计及代码生成器,可将生成的代码直接运行在基于Element的vue项目中;也可导出JSON表单,使用配套的解析器将JSON解析成真实的表单。仓库地址:https://gitee.com/mrhj/form-gene

基于ThinkPHP5.0的微信小程序登录流程封装

基于ThinkPHP5.0的微信小程序composer包。安装方法:composer require xxh/think-wxminihelper你只需要两部就可以实现微信的登录验证,验证成功后会自动返回一个3rd_se

Thinkphp6.0整合PayPal支付实例

Thinkphp6.0整合PayPal支付实例,需要执行 composer install 命令安装Thinkphp框架。具体功能可以查看已经整合好的代码。

仿美图秀秀html5版canvas自由拼图实例

基于canvas自由拼图实例,可以自由拖动,仿美图秀秀自由拼图,并可以对插入图片旋转,拖拽,缩放。当然,如果用户对插入的图片不满意,可以用另一张图片替换选中的图片,或者删除选中图片。

强大的Laravel管理后台UI框架源码-Nazox

Nazox是一个Laravel7实现的管理后台模板,前端样式使用Bootstrap4 CSS库,身份验证和多语言支持。Nazox Laravel管理后台模板是基于一个简单的和模块化的设计,使它很容易定制一些可重用的组件。它有大量的可重用的和

基于jQuery的分页组件-jqPaginator分页组件

jqPaginator是一款基于jQuery的简洁、高度自定义的jQuery分页组件,适用于多种应用场景。用法很简单,首先引入jQuery和jqPaginator,之后就可以初始化分页了$('#id').jqPaginato

Python海报生成器源码

海报编辑器最左侧是组件列表。可以在最左侧选择组件,比如文本、二维码、图片等添加到最中间的画布区域,通过右侧的属性调节面板调节添加组件的样式。快速:三步完成海报开发工作:启动服务 > 编辑海报 > 生成代码简单:组件丰富、支持拖拽

Artplayer视频JSON解析播放器源码

Artplayer视频JSON解析播放器源码支持弹幕json数据模式,支持两种返回模式:网页播放模式、json数据模式,json数据模式支持限制ip每分钟访问次数+UA限制+key密钥,也可理解为防盗链 ,本播放器带弹幕库。运行环境:推荐使

PHP点餐系统/基于Vue开发的前后端分离点餐系统实例

PHP点餐系统,基于Vue开发的前后端分离点餐系统实例;本站已亲测,功能全面,可实现在线点餐。需要注意的是默认系统是部署在“phpecXfv”文件夹中的,如果需要部署在根目录,则注释掉根目录 index.php 文件的5-9行。并修改 /f

jvalidator异步表单验证器

jvalidator是一个支持表达式的异步表单验证器插件,使用方法:第1步设置好表单,为需要验证的字段设置 data-jvalidator-pattern ,该内容是你可以使用的验证器<form id="form1

微信APP支付PHP服务端代码封装

微信支付,微信支付PHP服务端,微信APP支付。服务器端完成统一下单,将数据传输给APP,APP调起返回的微信支付信息完成支付微信支付APP服务器端代码逻辑处理index.php:微信APP支付(服务器端完成统一下单,将数据传输给APP,A

评论(0)条

您还没有登录,请 登录 后发表评论!

提示:请勿发布广告垃圾评论,否则封号处理!!

    编辑推荐