uploadifive php上传进度条插件 解决动态传参数问题
uploadifive默认只能在加载时,静态传递参数.如果想让用户输入参数.再动态读取.传到后端,是没有直接的办法的
效果图
但我们可以通过settings.formData 来修改配置的方式传参数,完整演示
<form id="file_form{$v.id}" style="display:none"><hr/>
<div id="queue{$v.id}"></div>
<input id="file_upload{$v.id}" name="file_upload" type="file" multiple="true">
<div class="clearfix"></div><br/>
<input id="copy{$v.id}" style="border:1px solid #ccc;
width:200px;height:24px;font-weight:100;font-size: 12px;
display:inline-block"value=""type="text" placeholder="填版本号保存的txt文件名">
.txt 比如填:version
<div class="clearfix"></div><br/>
<a class="btn btn-success btn" type="Submit"
style=";display:inline-block;color:#fff"
href="javascript:check_copy({$v.id});">点击上传</a>
<br/>文件名中不得有中文-空格-斜线-等号等非法字符<br/>
版本号就是文件名<br/>版本号保存的txt位置.需要手工填写
</form>
<script type="text/javascript">
$(function() {
<?php $timestamp=time();?>
$('#file_upload'+{$v.id}).uploadifive({
'auto' : false,
'checkScript' : '?a=check_exists',
'fileType' : '.rar,.zip,.exe',
'formData' : {
// 'id' : '{$v.id}',
'timestamp' : '<?php echo $timestamp;?>',
'token' : '<?php echo md5('unique_salt' . $timestamp);?>'
},
'queueID' : 'queue'+{$v.id},
'uploadScript' : '?a=ploadifive',
'onUploadComplete' : function(file, data) {
setTimeout("window.location.reload()", 1500 )
}
});
});
</script>
function check_copy(id){
var copy=$('#copy'+id).val();
if(copy==''){
alert('版本号的保存位置的文件名不能为空!');
return false;
}else{
$('#file_upload'+id).data('uploadifive').settings.formData = { 'copy': copy,'id':id};
//用这种办法,可把copy参数传过去,好像会影响其它参数,干脆ID也在这里传递吧
$('#file_upload'+id).uploadifive('upload');
}
}