2012-02-06 37 views
1

我有Uploadify的簡單問題。上傳開始之前,我想檢查一些標準,這是真的 - 我想中止上傳。下面的代碼無法正常工作,即使我打電話給uploadifyCancel,它也會上傳文件。如何解決它?Uploadify - 如何中止上傳?

$("#fileuploader").uploadify({ 
      uploader: '/Scripts/uploadify.swf', 
      script: '/Upload/' 
      fileDataName: 'file', 
      buttonText:'upload', 
      multi: false, 
      sizeLimit: 369878, 
      simUploadLimit: 1, 
      cancelImg: '/Images/uploadify-cancel.png', 
      auto: true, 
      onOpen:function(event,ID,fileObj) { 
       var found = $('#uploaded-files-table tr[some-attr="1"]'); 

       if($(found).length == 0){ 
        $('#list').attr('disabled','disabled'); 
       } else { 
        $("#fileuploader").uploadifyClearQueue(); 
        $("#fileuploader").uploadifyCancel(ID); 
       } 
      } 
     }); 

回答

0

$("#fileuploader").uploadifyCancel(ID);代碼運行正常。如果你添加了一個onComplete和一個onAllComplete,這兩個事件都不會被觸發,表示取消事件已經起作用。

問題是uploadify固有地在onOpen事件發生之前開始上傳文件。請在這裏,它看起來像他們與的OnOpen http://www.uploadify.com/forums/discussion/5611/uploadifysettings-not-posting-new-script-data/p1修改腳本數據

我確實有一些成功的解除文件,如果他們在600-700KB大小既$("#fileuploader").uploadifyCancel(ID);$("#fileuploader").uploadifyClearQueue();具有相同的問題。我認爲這必須處理上傳的速度。由於這些文件較大,取消事件在上載完成之前有時間觸發。在實時服務器上,而不是在本地主機上,上傳時間會比較慢,所以MAYBE在事件取消時不會出現問題。但我不會冒險。

可能的解決方法是在頁面上包含一個輔助按鈕,用於啓動上傳並從uploadify init中刪除auto: 'true'。這樣,您可以在上傳開始之前檢查所需的任何值。

0

使用onSelect的uploadify進行檢查。

你可以這樣做:

$("#fileuploader").uploadify({ 
      uploader: '/Scripts/uploadify.swf', 
      script: '/Upload/' 
      fileDataName: 'file', 
      buttonText:'upload', 
      multi: false, 
      sizeLimit: 369878, 
      simUploadLimit: 1, 
      cancelImg: '/Images/uploadify-cancel.png', 
      auto: true, 
      'onSelect': function (file) { 
         if(file.type==".zip") 
         {//do something 
         } 
         else 
         { 
          //cancel upload 
         } 
0

我不知道你使用的是哪個版本,但我能做到這一點下面的方法。 我需要基於文件擴展名停止文件上傳

'onAddQueueItem':function(file, e) { 
if (!(/\.(gif|jpeg|png|pdf)$/i).test(file.name)) { 
$($this).data("uploadifive").removeQueueItem(file, 0, 10); 
    file.skip = true; //This skip property stop uploading file 
    } 
}