2012-03-14 62 views
3

我試圖實現藍色imp jquery文件上傳插件:https://github.com/blueimp/jQuery-File-Upload/經常說已經很詳細的文檔,但對於我來說,作爲初學jquery不是很容易理解。jquery文件上傳插件:如何使用回調?

我想我基本上可以說幾乎沒有jQuery的經驗,所以如果任何人都可以幫助我或給我他,我會很高興!

我試圖建立的基本實現,因爲它是在wiki並保存以下內容作爲index.html的:

<!DOCTYPE HTML> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>jQuery File Upload Example</title> 
</head> 

<body> 

<input id="fileupload" type="file" name="files[]" multiple> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<script src="js/vendor/jquery.ui.widget.js"></script> 
<script src="js/jquery.iframe-transport.js"></script> 
<script src="js/jquery.fileupload.js"></script> 
<script> 

$(function() { 
    $('#fileupload').fileupload({ 
     dataType: 'json', 
     url: 'server/php/', 
     done: function (e, data) { 
      $.each(data.result, function (index, file) { 
       $('<p/>').text(file.name).appendTo(document.body); 
      }); 
     } 
    }); 
}); 

</script> 

</body> 
</html> 

我想要做的是顯示已上載於同一圖像頁。上傳完成後,我認爲我需要在回調中執行此操作。然而,我不知道在哪裏放置代碼...

因此,要找出在哪裏放任何代碼,我只是試圖只是得到一個警告框,並添加了此代碼|更新:這個作品現在:

$('#fileupload').bind('fileuploaddone', function (e, data) {alert("Message","Titel")}); 

我也試圖簡單地使用,因爲它是在維基說

$('#fileupload').fileupload('disable'); 

,但沒有效果:(UPDATE:仍然無法正常工作)。

我在錯誤的地方使用代碼?代碼本身應該沒問題,我猜...

提前感謝您的任何提示!

回答

1

如果綁定到'fileuploadcompleted',則可以在圖像上傳時觸發操作。

這可以通過將綁定鏈接到文件上載的末尾來完成。 e.g:

$('#fileupload').fileupload({ 
    dataType: 'json', 
    url: 'server/php/', 
    done: function (e, data) { 
     $.each(data.result, function (index, file) { 
      $('<p/>').text(file.name).appendTo(document.body); 
     }); 
    } 
}).bind('fileuploadcompleted', function (e, data) {alert("Message","Title")}); 

或低於使用文件上傳功能調用的任何地方:

2

可以使用fileuploadprogressall回調函數加載的總數據內比較:

$('#fileupload').fileupload({ 
    ... 
}).bind('fileuploadprogressall', function (e, data) { 
     if(data.loaded==data.total) { 
      console.log("All photos have been done"); 
     } 
});