2012-02-06 39 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 
    } 
}