使用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 动态添加事件代码
Nov 30 Javascript
使用Javascript接收get传递的值的代码
Nov 30 Javascript
jQuery判断复选框是否勾选的原理及示例
May 21 Javascript
JavaScript修改作用域外变量的方法
Mar 25 Javascript
jquery获取img的src值的简单实例
May 17 Javascript
JS实现表单验证功能(验证手机号是否存在,验证码倒计时)
Oct 11 Javascript
Bootstrap整体框架之JavaScript插件架构
Dec 15 Javascript
微信公众号菜单配置微信小程序实例详解
Mar 31 Javascript
jQuery实现web页面樱花坠落的特效
Jun 01 jQuery
详解Vue中数组和对象更改后视图不刷新的问题
Sep 21 Javascript
解决vue打包报错Unexpected token: punc的问题
Oct 24 Javascript
js实现简单的轮播图效果
Dec 13 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分页时出现的Fatal error的解决方法
2011/04/18 PHP
PHP输入流php://input介绍
2012/09/18 PHP
php提交表单发送邮件的方法
2015/03/20 PHP
php-app开发接口加密详解
2018/04/18 PHP
PHP implode()函数用法讲解
2019/03/08 PHP
laravel中的fillable和guarded属性详解
2019/10/23 PHP
parseInt parseFloat js字符串转换数字
2010/08/01 Javascript
你需要知道的10个最佳javascript开发实践小结
2012/04/15 Javascript
node.js中使用socket.io制作命名空间
2014/12/15 Javascript
实现前后端数据交互方法汇总
2015/04/07 Javascript
jQuery仿天猫实现超炫的加入购物车
2015/05/04 Javascript
基于Flowplayer打造一款免费的WEB视频播放器附源码
2015/09/06 Javascript
JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法
2016/08/03 Javascript
JavaScript基于自定义函数判断变量类型的实现方法
2016/11/23 Javascript
Vue.js 单页面多路由区域操作的实例详解
2017/07/17 Javascript
JS 中使用Promise 实现红绿灯实例代码(demo)
2017/10/20 Javascript
JavaScript常用截取字符串的三种方式用法区别实例解析
2018/05/15 Javascript
vue给组件传递不同的值方法
2018/09/29 Javascript
vue.js实现简单购物车功能
2020/05/30 Javascript
[49:42]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第一局
2016/03/04 DOTA
Python创建日历实例
2014/08/21 Python
Python图片裁剪实例代码(如头像裁剪)
2017/06/21 Python
python3.7通过thrift操作hbase的示例代码
2020/01/14 Python
django 实现手动存储文件到model的FileField
2020/03/30 Python
Python打印不合法的文件名
2020/07/31 Python
django使用graphql的实例
2020/09/02 Python
用纯css3实现的图片放大镜特效效果非常不错
2014/09/02 HTML / CSS
使用HTML5拍照示例代码
2013/08/06 HTML / CSS
Hotels.com中国区:好订网
2016/08/18 全球购物
Carmen Sol官网:购买果冻鞋、手袋和配件
2021/01/01 全球购物
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
2014/09/09 面试题
超市优秀员工事迹材料
2014/05/01 职场文书
购房公证委托书(2014版)
2014/09/12 职场文书
主婚人致辞精选
2015/07/28 职场文书
只需要这一行代码就能让python计算速度提高十倍
2021/05/24 Python
利用Python实时获取steam特惠游戏数据
2022/06/25 Python