使用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 相关文章推荐
Prototype使用指南之selector.js
Jan 10 Javascript
多浏览器兼容性比较好的复制到剪贴板的js代码
Oct 09 Javascript
jQuery选择器中含有空格的使用示例及注意事项
Aug 25 Javascript
简单的邮箱登陆的提示效果类似于yahoo邮箱
Feb 26 Javascript
jQuery实现统计复选框选中数量
Nov 24 Javascript
15个jquery常用方法、小技巧分享
Jan 13 Javascript
js实现图片点击左右轮播
Jul 08 Javascript
AngularJs 终极购物车(实例讲解)
Nov 08 Javascript
vue刷新和tab切换实例
Feb 11 Javascript
JS实现面向对象继承的5种方式分析
Jul 21 Javascript
JS apply用法总结和使用场景实例分析
Mar 14 Javascript
基于脚手架创建Vue项目实现步骤详解
Aug 03 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
linux系统下php安装mbstring扩展的二种方法
2014/01/20 PHP
PHP使用strrev翻转中文乱码问题的解决方法
2017/01/13 PHP
你需要知道的JavsScript可以做什么?
2007/06/29 Javascript
js弹窗代码 可以指定弹出间隔
2010/07/03 Javascript
jquery $.ajax各个事件执行顺序
2010/10/15 Javascript
用jquery设置按钮的disabled属性的实现代码
2010/11/28 Javascript
JSONP 跨域访问代理API-yahooapis实现代码
2012/12/02 Javascript
window.open以post方式将内容提交到新窗口
2012/12/26 Javascript
javascript折半查找详解
2015/01/26 Javascript
学习JavaScript设计模式(单例模式)
2015/11/26 Javascript
Node.js环境下Koa2添加travis ci持续集成工具的方法
2017/06/19 Javascript
electron demo项目npm install安装失败的解决方法
2018/02/06 Javascript
Vue发布项目实例讲解
2019/07/17 Javascript
如何构建 vue-ssr 项目的方法步骤
2020/08/04 Javascript
[03:19]2016国际邀请赛中国区预选赛第四日TOP10镜头集锦
2016/07/01 DOTA
Python学习笔记之os模块使用总结
2014/11/03 Python
python使用pygame框架实现推箱子游戏
2018/11/20 Python
Python实现图片添加文字
2019/11/26 Python
Python监控服务器实用工具psutil使用解析
2019/12/19 Python
python爬取代理ip的示例
2020/12/18 Python
Python使用Turtle模块绘制国旗的方法示例
2021/02/28 Python
CSS3中currentColor关键字的妙用
2016/02/27 HTML / CSS
Michael Kors美国官网:美式奢侈生活风格的代表
2016/11/25 全球购物
Mansur Gavriel官网:纽约市的一个设计品牌
2019/05/02 全球购物
开普敦通行证:Cape Town Pass
2019/07/18 全球购物
介绍一下SQL Server的全文索引
2013/08/15 面试题
实习护士自荐信
2014/06/21 职场文书
村级个人对照检查材料
2014/08/22 职场文书
镇创先争优活动总结
2014/08/28 职场文书
布达拉宫导游词
2015/02/02 职场文书
4S店客服专员岗位职责
2015/04/07 职场文书
党员个人承诺书
2015/04/27 职场文书
深入理解redis中multi与pipeline
2021/06/02 Redis
Mysql中存储引擎的区别及比较
2021/06/04 MySQL
python数据处理之Pandas类型转换
2022/04/28 Python
Android开发手册自定义Switch开关按钮控件
2022/06/10 Java/Android