onCancel不是你取消上传的事件吗?都上传完成了你还怎么取消?

解决方案 »

  1.   


    楼主,使用uploadify的原生事件我还没找到方法,但可以看一下uploadify生成的html结构,自己加一下点击取消按钮的事件就可以了。我的解决方法是:保存已经上传的文件信息,并绑定取消按钮的单击事件,当单击“×”时,就能调用了
    具体结构如下所示:
    然后增加单击“×”时的事件://单击上传文件的取消按钮时,判断该文件是否已经上传过,如果已经上传过,需要做清理工作
    $("#fileQueue .cancel").live("click", function() {
                    //取得本次取消的上传文件ID号
    var fileId = $(this).parents(".uploadify-queue-item").attr("id");
    var fileInfo = null;
            //fileList中保存了所有的已上传文件信息。
         for (var i=0; i<fileList.length; i++) {
         if (fileList[i].fileId == fileId) {
         fileInfo = fileList[i];
         fileList.splice(i, 1);
         break;
         }
         }
         //如果文件已经上传(即fileInfo不为空)
         if (fileInfo != null) {
         //将已经上传的文件从上传文件队列中清除(不然取消该已上传的文件后,再选择相同的文件上传将会提示“文件已存在!”
         delete uploadifyQueueData.files[fileId];
            //将垃圾文件从后台服务器中清除
         var suggest = {};
        suggest.fileList = [fileInfo]; 
                $.ajax({
                   type: "POST",
                   contentType: "application/json", 
                   url: "deleteFile",
                   dataType: "json",
                   data: JSON.stringify(suggest),
                   error: function(data) {
                   alert('删除失败');
                   }
                  }); 
         }
    });注:上面的uploadifyQueueData对象是在初始化uploadify时引用的uploadify的文件上传队列对象,代码如下:
    'onSWFReady' : function() {
             uploadifyQueueData = this.queueData;
            },
      

  2.   


    ——————————————————————————————————————————
    其中的那个fileList是哪里来的?调不通
      

  3.   

    大家好,最近有部分人发消息问我fileList是从哪里来的,这个问题我在这做一下说明:这个fileList其实就是保存一个已经上传的文件信息列表,在onUploadSuccess回调函数中将上传成功的文件信息push到该列表中。