使用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的eval JSON object问题
Nov 15 Javascript
基于jquery实现的服务器验证控件的启用和禁用代码
Apr 27 Javascript
SOSO地图API使用(一)在地图上画圆实现思路与代码
Jan 15 Javascript
Extjs407 getValue()和getRawValue()区别介绍
May 21 Javascript
浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用
Nov 23 Javascript
解决jQuery上传插件Uploadify出现Http Error 302错误的方法
Dec 18 Javascript
浅谈Vue.js 组件中的v-on绑定自定义事件理解
Nov 17 Javascript
Vue验证码60秒倒计时功能简单实例代码
Jun 22 Javascript
vue前端框架—Mint UI详解(更适用于移动端)
Apr 30 Javascript
利用layer实现表单完美验证的方法
Sep 26 Javascript
微信小程序中的video视频实现 自定义播放按钮、封面图、视频封面上文案
Jan 02 Javascript
vue3中轻松实现switch功能组件的全过程
Jan 07 Vue.js
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
phpmyadmin MySQL 加密配置方法
2009/07/05 PHP
关于PHP堆栈与列队的学习
2013/06/21 PHP
php设计模式之命令模式使用示例
2014/03/02 PHP
PHP常见错误提示含义解释(实用!值得收藏)
2016/04/25 PHP
详解PHP文件的自动加载(autoloading)
2018/02/04 PHP
laravel5.2表单验证,并显示错误信息的实例
2019/09/29 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
Javascript WebSocket使用实例介绍(简明入门教程)
2014/04/16 Javascript
cocos2dx骨骼动画Armature源码剖析(一)
2015/09/08 Javascript
node.js Sequelize实现单实例字段或批量自增、自减
2016/12/08 Javascript
jQuery插件jqGrid动态获取列和列字段的方法
2017/03/03 Javascript
javascript cookie的基本操作(添加和删除)
2017/07/24 Javascript
JS实现不用中间变量temp 实现两个变量值得交换方法
2018/02/04 Javascript
vue2.0结合Element-ui实战案例
2019/03/06 Javascript
详解Vue中组件传值的多重实现方式
2019/08/16 Javascript
深入了解JS之作用域和闭包
2020/06/16 Javascript
详解Python中break语句的用法
2015/05/14 Python
pycharm设置注释颜色的方法
2018/05/23 Python
python如何将多个PDF进行合并
2019/08/13 Python
pyqt5、qtdesigner安装和环境设置教程
2019/09/25 Python
opencv3/C++实现视频背景去除建模(BSM)
2019/12/11 Python
Python高阶函数、常用内置函数用法实例分析
2019/12/26 Python
在TensorFlow中屏蔽warning的方式
2020/02/04 Python
Flask模板引擎Jinja2使用实例
2020/04/23 Python
DHC中国官方购物网站:日本通信销售No.1化妆品
2016/08/20 全球购物
澳大利亚第一的设计师礼服租赁网站:GlamCorner
2017/08/13 全球购物
东方通信股份有限公司VC面试题
2014/08/27 面试题
夜大毕业生自我评价分享
2013/11/10 职场文书
自我反省检讨书
2014/01/23 职场文书
房屋公证委托书
2014/04/03 职场文书
2014年党课学习心得体会
2014/07/08 职场文书
竞聘演讲稿怎么写
2014/08/28 职场文书
酒店辞职书范文
2015/02/26 职场文书
大学运动会通讯稿
2015/07/18 职场文书
Django如何创作一个简单的最小程序
2021/05/12 Python
简单总结SpringMVC拦截器的使用方法
2021/06/28 Java/Android