使用plupload自定义参数实现多文件上传


Posted in Javascript onJuly 19, 2016

1、在开发中可能需要用户附件上传的功能,实现批量上传功能其实就将多个上传任务放到一个集合中,分别上传。

2,使用plupload js插件可以很轻松的实现带参数的多文件上传

使用plupload自定义参数实现多文件上传

3、具体js实现方式

<script type="text/javascript">
var map={};//文件id为key,文件类型为value的集合
// Custom example logic
var uploader = new plupload.Uploader({
runtimes : 'html5,flash,silverlight,html4',
browse_button : 'pickfiles', // you can pass in id...
container : document.getElementById('container'), // ... or DOM Element itself
url : '../action/photoUpload.jsp',
flash_swf_url : '../../js/Moxie.swf',
silverlight_xap_url : '../../js/Moxie.xap',
filters : {
max_file_size : '5mb',
mime_types : [ {
title : "图片类型",
extensions : "jpg,gif,png"
} ]
},
init : {
PostInit : function() {
document.getElementById('uploadfiles').onclick = function() {
uploader.start();
return false;
};
},
BeforeUpload:function(up,file){
//重点在这里,上传的时候自定义参数信息
uploader.setOption("multipart_params",{"apptype":${param.type},"id":${param.id},"fileType":map[file.id]});
},
FileUploaded:function(up,file){
$("#"+file.id+"btn").parent().html("上传完毕");
$("#"+file.id+"btn").remove();
},
FilesAdded : function(up, files) {
if($("#fileType").val()==1){
alert("请选择附件类型!");
//清空刚才选择的文件
plupload.each(files,function(file) {
uploader.removeFile(file.id);
});
return false;
}
plupload.each(files,function(file) {
map[file.id]=$("#fileType").val();
$("#uploadTable").append("<tr id='"+file.id+"tr'><td>"+$("#fileType").val()+"</td><td>"+file.name+"</td><td><button type='button' id='"+file.id+"btn' onclick=del('"+file.id+"')>删除</button> </td><td id='"+file.id+"_progress'></td></tr>");
});
},
UploadProgress : function(up, file) {
$("#"+file.id+"_progress").html('<span>'+ file.percent + "%</span>");
},
Error : function(up, err) {
alert("此文件上传失败!");
}
}
});
uploader.init();
//根据文件id删除此文件,并且在table中删除此文件的信息
function del(id){
uploader.removeFile(id);
$("#"+id+"tr").remove();
map[id]="";
}
</script>

其他参数在其官网上:http://www.plupload.com/

宅男程序猿,文采不行,如果看着累直接复制js,注意页面上需要有:

<div id="filelist"></div>
<div id="container">
<center>
提示:必须上传 "商户营业执照","税务登记证明","企业法人身份证","考察照片","商户信息调查表","商户协议" 才能提交审批!
</center>
<label>附件类型:</label> <select name="fileType" id="fileType" >
<option value="1">-------请选择-----</option>
<option value="商户营业执照">商户营业执照</option>
<option value="税务登记证明">税务登记证明</option>
<option value="商户信息变更表">商户信息变更表</option>
<option value="其他">其他</option>
</select>
<button class="button" id="pickfiles">选择文件</button>  
<button class="button" id="uploadfiles">批量上传</button>  
<button class="button" onclick="window.location.reload()">刷新</button>  
<button class="button" onclick="window.close()">关闭窗口</button>
<table style="width: 600px" id="uploadTable" border="1">
<tr>
<td>文件类型</td>
<td>文件名称</td>
<td>操作</td>
<td>上传进度</td>
</tr>
</table>
</div>

以上所述是小编给大家介绍的使用plupload自定义参数实现多文件上传,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JS 操作Array数组的方法及属性实例解析
Jan 08 Javascript
node.js中的console.time方法使用说明
Dec 09 Javascript
jQuery使用之标记元素属性用法实例
Jan 19 Javascript
JavaScript实现彩虹文字效果的方法
Apr 16 Javascript
简单讲解jQuery中的子元素过滤选择器
Apr 18 Javascript
什么是JavaScript中的结果值?
Oct 08 Javascript
jQuery实现模拟flash头像裁切上传功能示例
Dec 11 Javascript
详解JavaScript的闭包、IIFE、apply、函数与对象
Dec 21 Javascript
详解JavaScript的数据类型以及数据类型的转换
Apr 20 Javascript
微信小程序添加插屏广告并设置显示频率(一天一次)
Dec 06 Javascript
JS表单验证插件之数据与逻辑分离操作实例分析【策略模式】
May 01 Javascript
用vue设计一个日历表
Dec 03 Vue.js
artDialog+plupload实现多文件上传
Jul 19 #Javascript
plupload+artdialog实现多平台上传文件
Jul 19 #Javascript
如何在JS中实现相互转换XML和JSON
Jul 19 #Javascript
js 动态给元素添加、移除事件的实现方法
Jul 19 #Javascript
js实现动态创建的元素绑定事件
Jul 19 #Javascript
用js动态添加html元素,以及属性的简单实例
Jul 19 #Javascript
详谈JS中实现种子随机数及作用
Jul 19 #Javascript
You might like
上传多个文件的PHP脚本
2006/11/26 PHP
js类中获取外部函数名的方法
2007/08/19 Javascript
一些相见恨晚的 JavaScript 技巧
2010/04/25 Javascript
基于jquery的仿百度搜索框效果代码
2011/04/11 Javascript
iframe调用父页面函数示例详解
2014/07/17 Javascript
jQuery前端框架easyui使用Dialog时bug处理
2014/12/05 Javascript
js+css实现导航效果实例
2015/02/10 Javascript
JavaScript中访问id对象 属性的方式访问属性(实例代码)
2016/10/28 Javascript
基于JavaScript实现自定义滚动条
2017/01/25 Javascript
ES6学习教程之Map的常用方法总结
2017/08/03 Javascript
解决使用vue.js路由后失效的问题
2018/03/17 Javascript
javascript定时器的简单应用示例【控制方块移动】
2019/06/17 Javascript
vue自定义标签和单页面多路由的实现代码
2020/05/03 Javascript
[01:59]翻天覆地,因你而变,7.20版本地图更新速览
2018/11/24 DOTA
详解Python当中的字符串和编码
2015/04/25 Python
python绘图方法实例入门
2015/05/19 Python
NetworkX之Prim算法(实例讲解)
2017/12/22 Python
python3解析库lxml的安装与基本使用
2018/06/27 Python
Python单向链表和双向链表原理与用法实例详解
2018/08/31 Python
使用python获取电脑的磁盘信息方法
2018/11/01 Python
Django 视图层(view)的使用
2018/11/09 Python
Python 带有参数的装饰器实例代码详解
2018/12/06 Python
flask session组件的使用示例
2018/12/25 Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
2019/03/14 Python
浅谈Python编程中3个常用的数据结构和算法
2019/04/30 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
2019/11/26 Python
详解向scrapy中的spider传递参数的几种方法(2种)
2020/09/28 Python
python 提高开发效率的5个小技巧
2020/10/19 Python
匡威西班牙官网:Converse西班牙
2019/10/01 全球购物
2014年自我评价
2014/01/04 职场文书
采购助理岗位职责
2014/02/16 职场文书
2014年党员自我剖析材料
2014/10/07 职场文书
2014年全国法制宣传日宣传活动方案
2014/11/02 职场文书
党员学习群众路线心得体会
2014/11/04 职场文书
不同意离婚上诉状
2015/05/23 职场文书
Python的三个重要函数详解
2022/01/18 Python