<table>
<tr><td>商品名称1</td><td><input data-id="1" type="file" class="uploadifive" /></td></tr>
<tr><td>商品名称2</td><td><input data-id="2" type="file" class="uploadifive" /></td></tr>
</table>
<div id="proccess"></div>说明:本段代码模仿后台商品列表,实际模板应是循环。每一行都显示一个文件上传按钮,由于单页面有多个上传,故使用类名.uploadifive(不能使用ID名),把内容ID写在file控件上备用;<script>$(function(){
$('.uploadifive').uploadifive({
'auto' : true, //自动上传
'width' : '80px', //按钮宽度
'height' : '20px', //按钮高度
'uploadScript' : '/Index/uploadifive', //上传方法
'fileObjName' : 'mp3',
'buttonText' : '上传',
'queueID' : 'proccess', //显示队列的ID
'fileType' : '*.mp3',
'multi' : false,
'fileSizeLimit' : '5MB',
'uploadLimit' : 1,
'removeTimeout' : 0,
'queueSizeLimit' : 1,
'removeCompleted' : true, //上传完成后自动隐藏列表
//'formData' : {'pid' : 1111}, //传静态参数有用,传变量无用
'onAddQueueItem' : function(file){
this.data('uploadifive').settings.formData = {'id':$(this).data('id')}; //传递动态参数方法
},
'onUploadComplete' : function(file, data){
var obj = JSON.parse(data);
if (obj.status == 'success'){
layer.msg('上传成功!',{icon:1,time:1500},function(){
window.location.reload();
});
} else {
layer.msg("上传失败!",{icon:2});
}
},
onCancel : function(file){
$data = $(this).data('uploadifive'),
settings = $data.settings;
settings.uploadLimit++;
layer.msg(file.name + " 已取消上传~",{icon:2});
},
});
});
</script>说明:本段代码是重点,因为在获取内容ID的时候花了些时间,度娘了国内所有资料发现均无法动态传参,都说得乱七八糟的,最后翻墙去了google一分钟不到就解决了〜uploadifive里动态传递参数可以在onAddQueueItem里面定义,可以用jquery语法,可以定义多个参数。ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。