使用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 相关文章推荐
基于Web标准的UI组件 — 树状菜单(2)
Sep 18 Javascript
Javascript 获取LI里的内容
Dec 17 Javascript
js 效率组装字符串 StringBuffer
Dec 23 Javascript
移动端JQ插件hammer使用详解
Jul 03 Javascript
详解Node 定时器
Feb 26 Javascript
vue配置请求本地json数据的方法
Apr 11 Javascript
Vue 项目代理设置的优化
Apr 17 Javascript
学习JS中的DOM节点以及操作
Apr 30 Javascript
详解如何在你的Vue项目配置vux
Jun 04 Javascript
JavaScript循环遍历你会用哪些之小结篇
Sep 28 Javascript
浅谈layer的Icon样式以及一些常用的layer窗口使用方法
Sep 11 Javascript
基于leaflet.js实现修改地图主题样式的流程分析
May 15 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针对中英文混合字符串长度判断及截取方法示例
2017/03/31 PHP
php设计模式之单例模式用法经典示例分析
2019/09/20 PHP
javascript动画效果类封装代码
2007/08/28 Javascript
Jquery实现遮罩层的方法
2015/06/08 Javascript
详解Bootstrap四种图片样式
2016/01/04 Javascript
在JavaScript中call()与apply()区别
2016/01/22 Javascript
JavaScript中数组的22种方法必学(推荐)
2016/07/20 Javascript
jQuery获取选中单选按钮radio的值
2016/12/27 Javascript
纯js实现倒计时功能
2017/01/06 Javascript
Ajax异步获取html数据中包含js方法无效的解决方法
2017/02/20 Javascript
关于express与koa的使用对比详解
2018/01/25 Javascript
Vue多种方法实现表头和首列固定的示例代码
2018/02/02 Javascript
使用vue制作探探滑动堆叠组件的实例代码
2018/03/07 Javascript
vue中element 上传功能的实现思路
2018/07/06 Javascript
如何写好一个vue组件,老夫的一年经验全在这了(推荐)
2019/05/18 Javascript
ant design实现圈选功能
2019/12/17 Javascript
功能完善的小程序日历组件的实现
2020/03/31 Javascript
JavaScript TAB栏切换效果的示例
2020/11/05 Javascript
原生js中运算符及流程控制示例详解
2021/01/05 Javascript
[02:05]2014DOTA2国际邀请赛 BBC外卡赛赛后总结
2014/07/09 DOTA
[49:31]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第二场 1月29日
2021/03/11 DOTA
Python实现字典(dict)的迭代操作示例
2018/06/05 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
2018/09/17 Python
在Python 中实现图片加框和加字的方法
2019/01/26 Python
python实现简单五子棋游戏
2019/06/18 Python
Python统计时间内的并发数代码实例
2019/12/28 Python
如何基于python3和Vue实现AES数据加密
2020/03/27 Python
基于Tensorflow一维卷积用法详解
2020/05/22 Python
详解Python多线程下的list
2020/07/03 Python
彻底搞懂python 迭代器和生成器
2020/09/07 Python
python把一个字符串切开的实例方法
2020/09/27 Python
tensorflow2.0教程之Keras快速入门
2021/02/20 Python
Myprotein比利时官方网站:欧洲第一运动营养品牌
2020/10/04 全球购物
高级护理专业毕业生推荐信
2013/12/25 职场文书
好军嫂事迹材料
2014/01/15 职场文书
党员自我剖析材料范文
2014/10/06 职场文书