plupload组件问题(附代码)请指导,谢谢,图片自动删除了但是队列没有删除?

hipass
  • 11
问题最终目的是实现,判断重复图片并自动删除。

以下是与目的不一样效果截图
选择重复图片后弹出提示信息

队列没有删除

以下是主要代码。
'FilesAdded': function(up, files) {
    $('table').show();
    $('#success').hide();
    //图片列表最多只能有5张,判断是否超过,超过的则移除
    var count = files.length + uploadStoreImgUrl.length + fileNameList.length;
    if (files.length > 5 && (uploadStoreImgUrl.length + fileNameList.length) == 0) {
        var addLength = files.length;
        for (var i = addLength - 1; i > addLength - 1; i--) {
            up.removeFile(files[i].id);
            files.splice(i, 1);
        }
    }
    if (count > 5) {
        var addFile = files.length - (count - 5) - 1,
        tempLength = files.length;
        for (var m = tempLength - 1; m > addFile; m--) {
            up.removeFile(files[m].id);
            files.splice(m, 1);
            up.disableBrowse(true); //选择数量达到限制后禁止选择文件
            $('.glyphicon-plus').removeClass('glyphicon-plus').addClass('glyphicon-ban-circle'); //替换为禁止图标
            alert("超过上传数量限制,系统将自动删除多余的文件");
        }

    }
    plupload.each(files,
    function(file) {
        var progress = new FileProgress(file, 'fsUploadProgress');

        //判断图片是否重复,弹出提示并且从列表删除
        for (var i = 0; i < files.length; i++) {
            if (file.name == fileNameList[i]) {
                //$('#' + file.id).find('td').eq(0).append("<td>该图片已存在列表,请删除!</td>");
                up.removeFile(files[i].id);
                //files.splice(i, 1);
                alert("该图片已存在列表,系统将自动删除");
            }
        }
        //添加到上传队列,并且在页面预览
        fileNameList.push(file.name);
        var preloader = new mOxie.Image(); //图片上传前预览
        preloader.onload = function() {
            preloader.downsize(100, 100); //压缩图片
            var imgItem = '<img id="' + file.id + '" name="' + file.name + '" src="' + preloader.getAsDataURL() + '">';
            var liCont = '<li>' + imgItem + '<div class="icon-close close-icon"></div></li>';
            $('#' + file.id).find('td').eq(0).prepend(liCont);
        }
        preloader.load(file.getSource());
        progress.setStatus("等待..."); //等待上传
        progress.bindUploadCancel(up);
    });

}
回复
阅读 2.2k
1 个回答
alie_zjm
  • 1
新手上路,请多包涵

uploader.bind('FilesAdded',function(uploader,files){

    var fileLen = uploader.files.length;
    if(fileLen>1){
        uploader.splice(0,fileLen-1);//清空上传队列
    }

    console.log(uploader.files.length)

    $('#fileUpload').next('span').remove();
    $('#fileUpload').after('<span>'+files[0].name+'</span>')
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏