使用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,每个都会生成警告消息,用户必须响应。
我不知道为什么会这样。看过上传代码,但它超出了我对jQuery的有限知识
感谢任何建议/建议/治疗等等
Tx提前
答案 0 :(得分:2)
我在测试期间遇到了这个问题。我通过修改源代码来解决这个问题...你必须寻找评论“//循环浏览文件”以找到它的位置。基本上,我只是运行两个循环...一个用于检查,另一个用于上传以避免冲突。
// Loop through the files to run check scripts first...
if (settings.checkScript) {
$('#' + settings.queueID).find('.uploadifive-queue-item').not('.error, .complete').each(function () {
_file = $(this).data('file');
if (typeof _file.skipFile === 'undefined') {
_file.skipFile = $data.checkExists(_file);
}
});
}
// Loop through the files for uploading...
$('#' + settings.queueID).find('.uploadifive-queue-item').not('.error, .complete').each(function() {
_file = $(this).data('file');
// Check if the simUpload limit was reached
if (($data.uploads.current >= settings.simUploadLimit && settings.simUploadLimit !== 0) || ($data.uploads.current >= settings.uploadLimit && settings.uploadLimit !== 0) || ($data.uploads.count >= settings.uploadLimit && settings.uploadLimit !== 0)) {
return false;
}
if (!_file.skipFile) {
$data.uploadFile(_file, true);
}
});
当然希望我有办法对作者进行其他修复,但他的论坛已关闭,他无法与他联系。我只想说,这不是我遇到的唯一问题。