2012-03-06 152 views
0

我在我的網站上使用Uploadify並嘗試集成我自己的更高級的進度欄。我需要定期獲取每個文件上傳的狀態,因此我打算使用Uploadify的onProgress事件。如果我這樣做:Uploadify未觸發onProgress事件

$('#file-upload').uploadify({ 
    'uploader' : '/assets/flash/uploadify.swf', 
    'script' : '/upload.php', 
    'cancelImg' : '/assets/images/cancel.png', 
    'auto'  : false, 
    'multi'  : true, 
    'queueID' : 'file-queue', 
    'queueSizeLimit':5, 
    'sizeLimit' : 104857600, 
    'onSelect' : function(event, ID, fileObj) { 
     files.push({id:ID, size:fileObj.size}); 
     addFileToQueue(ID, fileObj); 
     return false; 
    }, 
    'onError' : function(event, ID, fileObj, errorObj) { 
     alert("Error: Type: " + errorObj.type + " Message: " + errorObj.info); 
    }, 
    'onProgress': function(event, ID, fileObj, data) { 
     console.log("progress"); 
     updateProgress(data); 
    } 
}); 

問題是,我從來沒有progress登錄到控制檯,也不會在updateProgress功能的任何代碼執行過。文件上傳確實有效,因爲我可以看到上傳到上傳目錄中的文件。我也沒有在Javascript控制檯中發現任何錯誤。

這裏有什麼問題?謝謝。

回答

1

嘗試:

'onProgress': function(event, ID, fileObj, data) { 
    console.log("progress"); 
    updateProgress(data); 
    return false; 
} 

從文檔:

「的onProgress選項允許你每次進步的文件上傳改變火功能的默認功能更新的長度。顯示進度條和百分比,如果自定義函數返回false,則默認函數將不會運行。「

+0

不,不起作用。我還注意到,沒有其他事件會像'onComplete'或'onError'那樣激發,它似乎只是'onSelect'的作用:/ – 2012-03-06 17:34:25

+0

嗯,這很奇怪。你的控制檯是否有錯誤?可能有一個錯誤導致部分代碼失敗,但不會影響onSelect。一般情況下,如果腳本的一部分失敗了,它會將所有內容都放在後面。我會仔細檢查你的語法onError。 – 2012-03-06 19:19:09