我使用 uploadifive(HTML5 版本,不是基于 Flash 的 uploadify),如下所示:
$('#file_upload').uploadifive({ //setup uploadify
'auto' : false,
'removeCompleted' : true,
'checkScript' : 'check-exists.php',
'formData' : {
'timestamp' : '<?php echo $timestamp;?>',
'token' : '<?php echo md5('unique_salt' . $timestamp);?>'
},
'queueID' : 'queue',
'uploader' : 'uploadifive.php',
'onUploadFile' : function(file) {
//alert('The file ' + file.name + ' is being uploaded.');
},
'onCheck' : function(file, exists) {
//alert ('onCheck: ' + file.name + '/' + exists);
},
'onUploadComplete' : function(file, data) {
//alert (file.name + ': ' + data);
}
});
通过这个简单的形式:
<form>
<div id="queue"></div>
<input id="file_upload" name="file_upload" type="file">
<a style="position: relative; top: 8px;" href="javascript:$('#file_upload').uploadifive('upload')">Upload Files</a>
</form>
如果我将一两个文件加载到空文件夹中,一切正常。
如果我加载 3 个或更多,我会得到不同数量的对 check_info.php 的重复调用。例如,如果我将五个文件上传到一个空文件夹中,根据 firebug,有 15 次调用 check_info。
1表示文件1,返回0(即文件不存在)
2 对于文件 2,均返回 0
3 对于文件3,全部返回0
4 对于文件4,1返回0,3返回1(即文件存在)
5 表示文件 5, 2 返回 0, 3 返回 1
我可以接受多次返回 0(尽管效率非常低),因为它们对用户来说是不可见的,但是 6 次返回 1,每个返回都会生成一条警告消息,用户必须对此做出响应。
我不知道为什么会发生这种情况。看过 uploadifive 代码,但它远远超出了我对 jQuery 的有限知识。
感谢任何意见/建议/治疗/等
提前发送