2013-12-15 93 views
3

的調用我使用uploadifive(HTML5版本不是基於快閃的uploadify)如下:使用uploadifive對多文件上傳的原因反覆check_exists

$('#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。例如,如果我上傳五個文件到一個空文件夾,根據螢火蟲有15個電話check_info。
1爲文件1,返回0(即文件不存在)
2文件2,既爲文件3返回0
3中,所有文件4,1返回0和3返回1返回0
4 (即文件存在)
5對於文件5,2返回0,3返回1
0的多重返回值我可以忍受(雖然效率非常低),因爲它們對用戶是不可見的,但是6的返回值爲1 ,每個都會生成一個警告消息,用戶必須對其進行響應。
我不知道爲什麼會發生這種情況。看過uploadifive代碼,但它超出了我對jQuery的有限知識。
欣賞任何意見/建議/固化的/ etc
的Tx提前

+0

如果可能的話使用更多相關標籤更新您的標籤。這可能會吸引更多的人面對你的問題。 – AtanuCSE

回答

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); 
    } 
}); 

當然希望我有辦法讓我的其他修復作者,但他的論壇是關機和他離開沒辦法聯繫他。可以說,這不是我唯一的問題。

+0

這解決了這個問題。我正在接近購買商業許可證......唷。無論如何,[email protected]不存在,它返回郵件。 – kosmos

相關問題