使用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 格式化时间日期函数小结
Mar 20 Javascript
JS控件的生命周期介绍
Oct 22 Javascript
JavaScript的漂亮的代码片段
Jun 05 Javascript
window.onresize 多次触发的解决方法
Nov 08 Javascript
js判断是否为ie的方法小结
Jan 13 Javascript
JavaScript两种跨域技术全面介绍
Apr 16 Javascript
js实现背景图自适应窗口大小
Jan 10 Javascript
vue组件实例解析
Jan 10 Javascript
bootstrap 表单验证使用方法
Jan 11 Javascript
基于代数方程库Algebra.js解二元一次方程功能示例
Jun 09 Javascript
JavaScript生成指定范围的时间列表
Mar 19 Javascript
小程序从手动埋点到自动埋点的实现方法
Jan 24 Javascript
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定时执行计划任务的多种方法小结
2011/12/19 PHP
js实现权限树的更新权限时的全选全消功能
2009/02/17 Javascript
jquery 简单图片导航插件jquery.imgNav.js
2010/03/17 Javascript
javascript中IE浏览器不支持NEW DATE()带参数的解决方法
2012/03/01 Javascript
jquery 插件学习(五)
2012/08/06 Javascript
javascript中this做事件参数相关问题解答
2013/03/17 Javascript
jquery.messager.js插件导致页面抖动的解决方法
2013/07/14 Javascript
js判断iframe内的网页是否滚动到底部触发事件
2014/03/18 Javascript
js函数调用的方式
2014/05/06 Javascript
JavaScript清空数组元素的两种方法简单比较
2015/07/10 Javascript
新手学习前端之js模仿淘宝主页网站
2016/10/31 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
2017/05/19 Javascript
详解VUE中常用的几种import(模块、文件)引入方式
2018/07/03 Javascript
解决Vue 项目打包后favicon无法正常显示的问题
2018/09/01 Javascript
ES6知识点整理之函数对象参数默认值及其解构应用示例
2019/04/17 Javascript
微信小程序实现发送模板消息功能示例【通过openid推送消息给用户】
2019/05/05 Javascript
Webpack中loader打包各种文件的方法实例
2019/09/03 Javascript
JS实现简易留言板特效
2019/12/23 Javascript
[02:47]DOTA2英雄基础教程 野性怒吼兽王
2013/12/05 DOTA
[51:26]VP vs VG 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python编程使用NLTK进行自然语言处理详解
2017/11/16 Python
5款非常棒的Python工具
2018/01/05 Python
说说如何遍历Python列表的方法示例
2019/02/11 Python
Python2和Python3的共存和切换使用
2019/04/12 Python
python和mysql交互操作实例详解【基于pymysql库】
2019/06/04 Python
python dict乱码如何解决
2020/06/07 Python
纽约手袋品牌:KARA
2018/03/18 全球购物
广告设计专业自荐信范文
2013/11/14 职场文书
三项教育活动实施方案
2014/03/30 职场文书
2014年群众路线党员自我评议
2014/09/24 职场文书
2015年库房管理工作总结
2015/10/14 职场文书
2016中秋节月饼促销广告语
2016/01/28 职场文书
关于感恩老师的古诗句
2019/08/20 职场文书
导游词之太湖
2019/10/08 职场文书
聊一聊python常用的编程模块
2021/05/14 Python
如何使用注解方式实现 Redis 分布式锁
2022/07/23 Redis