使用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 相关文章推荐
javascript  Error 对象 错误处理
May 18 Javascript
为javascript添加String.Format方法
Aug 11 Javascript
PHP使用方法重载实现动态创建属性的get和set方法
Nov 17 Javascript
基于zepto.js实现仿手机QQ空间的大图查看组件ImageView.js详解
Mar 05 Javascript
javascript中去除数组重复元素的实现方法【实例】
Apr 12 Javascript
Javascript自执行匿名函数(function() { })()的原理浅析
May 15 Javascript
jquery 判断是否支持Placeholder属性的方法
Feb 07 Javascript
React组件refs的使用详解
Feb 09 Javascript
React中使用外部样式的3种方式(小结)
May 28 Javascript
微信小程序开发技巧汇总
Jul 15 Javascript
SSM+layUI 根据登录信息显示不同的页面方法
Sep 20 Javascript
JavaScript实现简单日历效果
Sep 11 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 第二节 数据类型之转换
2012/04/28 PHP
PHP优于Node.js的五大理由分享
2012/09/15 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
2013/06/20 PHP
Laravel 5框架学习之向视图传送数据(进阶篇)
2015/04/08 PHP
php编写批量生成不重复的卡号密码代码
2015/05/14 PHP
示例详解Laravel的注册重构
2016/08/14 PHP
2014年最火的Node.JS后端框架推荐
2014/10/27 Javascript
js+css实现文字散开重组动画特效代码分享
2015/08/21 Javascript
jQuery无刷新上传之uploadify简单代码
2017/01/17 Javascript
Angularjs实现搜索关键字高亮显示效果
2017/01/17 Javascript
解决给dom元素绑定click等事件无效问题的方法
2017/02/17 Javascript
JSON创建键值对(key是中文或者数字)方式详解
2017/08/24 Javascript
jQuery 改变P标签文本值方法
2018/02/24 jQuery
10分钟上手vue-cli 3.0 入门介绍
2018/04/04 Javascript
微信小程序实现倒计时功能
2020/11/19 Javascript
js实现鼠标拖曳效果
2020/12/30 Javascript
Python urllib模块urlopen()与urlretrieve()详解
2013/11/01 Python
详解Python中的多线程编程
2015/04/09 Python
python flask实现分页的示例代码
2018/08/02 Python
uwsgi+nginx部署Django项目操作示例
2018/12/04 Python
HTML5安全介绍之内容安全策略(CSP)简介
2012/07/10 HTML / CSS
荷兰街头时尚之家:Funkie House
2019/03/18 全球购物
What's the difference between an interface and abstract class? (接口与抽象类有什么区别)
2012/10/29 面试题
一些Unix笔试题和面试题
2012/09/25 面试题
工商企业管理应届生求职信
2013/11/03 职场文书
网上卖盒饭创业计划书
2014/01/26 职场文书
土木工程专业推荐信
2014/02/19 职场文书
大跃进口号
2014/06/16 职场文书
个性车贴标语
2014/06/24 职场文书
水利水电建筑施工应届生求职信
2014/07/04 职场文书
七夕活动策划方案
2014/08/16 职场文书
红色旅游心得体会
2014/09/03 职场文书
音乐教师求职信范文
2015/03/20 职场文书
放牛班的春天观后感
2015/06/01 职场文书
好员工观后感
2015/06/17 职场文书
python全面解析接口返回数据
2022/02/12 Python