2011-03-01 69 views
1

我正在使用jquery uploadify插件讓用戶上傳個人資料照片。我正在使用ASP.NET MVC。我不得不說,我希望能獲得幫助的幾個問題:即使即使出現錯誤,jquery uploadify插件:onAllComplete也被解僱了

$popup.find('#fileInput').uploadify({ 
    'uploader': root + '/Content/Flash/uploadify.swf', 
    'script': root + '/Profile/ChangeAvatar', 
    'scriptData': { 'userName': $popup.find('#UserName').val(), 'token': $popup.find('#Auth').val() }, 
    'cancelImg': root + '/Content/Images/cancel.png', 
    'auto': true, 
    'multi': true, 
    'fileDesc': 'Image Files', 
    'fileExt': '*.jpg;*.png;*.gif;*.bmp;*.jpeg', 
    'queueSizeLimit': 90, 
    'sizeLimit': 4000000, 
    'buttonText': 'Change Avatar', 
    'width': 150, 
    'folder': root + '/uploads', 
    'onAllComplete': function (event, queueID, fileObj, response, data) { 
     //if (data.filesUploaded == "1") { 
     ShowMessage("Avatar uploaded successfully."); 
     //} 
    }, 
    'onError': function (event, ID, fileObj, errorObj) { 
     var msg; 
     if (errorObj.type === "File Size") 
      msg = 'File size cannot exceed 4MB'; 
     else 
      msg = "An error occured while attempting to upload your avatar." 

     ShowMessage(msg); 
     this.hide(); 
    } 

1. onAllComplete事件觸發時出現錯誤。我可以檢查是否有錯誤?因爲如果出現錯誤,我不想顯示我的成功消息。

2.上傳文件後,如果我嘗試立即上傳另一個文件,則出現「文件正在被另一個進程使用」錯誤。我知道這個問題可能是因爲即使是第二次上傳也使用相同的文件名(用戶名)。但我不知道我該如何解決這個問題。

謝謝!

回答

2

您的第一個錯誤是由於onAllComplete與onAllSuccess(實際上並不存在)之類的事實不相似所致。就像在jQuery AJAX調用中一樣,當javascript運行完成時onComplete觸發,完全忽視是否發生任何錯誤。但是,onAllComplete確實包含數據參數,該參數具有「錯誤」屬性,該屬性是上載過程中發生的錯誤數量的計數。通過檢查這個值,你可以確定它是否是一個乾淨的上傳或者是否出錯。

至於第二個錯誤,我真的不知道該怎麼做。我以前遇到同樣的問題,不記得我是否設法修復它。我可以嘗試的唯一建議是看一下實際的php或cs或任何文件,你正在使用的文件實際上是保存上傳後,並確保它掛起文件流並釋放它該文件的用法。