使用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 相关文章推荐
jQuery对象和Javascript对象之间转换的实例代码
Mar 20 Javascript
jQuery判断checkbox(复选框)是否被选中以及全选、反选实现代码
Feb 21 Javascript
三分钟带你玩转jQuery.noConflict()
Feb 15 Javascript
JavaScript对象数组排序实例方法浅析
Jun 15 Javascript
js实现右键菜单功能
Nov 28 Javascript
ES6学习之变量的解构赋值
Feb 12 Javascript
js实现无缝滚动图(可控制当前滚动的方向)
Feb 22 Javascript
Angular 表单控件示例代码
Jun 26 Javascript
Nuxt.js踩坑总结分享
Jan 18 Javascript
jQuery实现获取及设置CSS样式操作详解
Sep 05 jQuery
JavaScript实现无限级递归树的示例代码
Mar 29 Javascript
react 移动端实现列表左滑删除的示例代码
Jul 04 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发送html格式文本邮件的方法
2015/06/10 PHP
JavaScript Event学习第四章 传统的事件注册模型
2010/02/07 Javascript
改进UCHOME的记录发布,增强可访问性用户体验
2011/01/17 Javascript
jquery遍历数组与筛选数组的方法
2013/11/05 Javascript
JS的get和set使用示例
2014/02/20 Javascript
JS实现点击按钮后框架内载入不同网页的方法
2015/05/05 Javascript
使用Meteor配合Node.js编写实时聊天应用的范例
2015/06/23 Javascript
Javascript使用post方法提交数据实例
2015/08/03 Javascript
JavaScript识别网页关键字并进行描红的方法
2015/11/09 Javascript
JavaScript预解析及相关技巧分析
2016/04/21 Javascript
深入理解AngularJS中的ng-bind-html指令和$sce服务
2016/09/08 Javascript
完全深入学习Bootstrap表单
2016/11/28 Javascript
vue自定义过滤器创建和使用方法详解
2017/11/06 Javascript
vue强制刷新组件的方法示例
2019/02/28 Javascript
layui输入框中只允许输入整数的实现方法
2019/09/18 Javascript
node.JS路径解析之PATH模块使用方法详解
2020/02/06 Javascript
javascript设计模式 ? 中介者模式原理与用法实例分析
2020/04/20 Javascript
Javascript执行流程细节原理解析
2020/05/14 Javascript
vue3.0中使用element的完整步骤
2021/03/04 Vue.js
Python中字典映射类型的学习教程
2015/08/20 Python
python爬虫之线程池和进程池功能与用法详解
2018/08/02 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
2019/07/22 Python
Python tkinter实现图片标注功能(完整代码)
2019/12/08 Python
python实现将range()函数生成的数字存储在一个列表中
2020/04/02 Python
Python中如何引入第三方模块
2020/05/27 Python
java字符串格式化输出实例讲解
2021/01/06 Python
8款精美的CSS3表单设计(登录表单/下拉选择/按钮附演示及源码)
2013/02/04 HTML / CSS
html5拖拽应用记录及注意点
2020/05/27 HTML / CSS
Sarenza德国:法国最大的时尚鞋和包包网上商店
2019/06/08 全球购物
行政管理专业推荐信
2013/11/02 职场文书
合伙经营协议书
2014/04/18 职场文书
一年级评语大全
2014/04/23 职场文书
幼儿园亲子活动感想
2015/08/07 职场文书
护理工作心得体会
2016/01/22 职场文书
vue+springboot实现登录验证码
2021/05/27 Vue.js
Python3中最常用的5种线程锁实例总结
2021/07/07 Python