2013-03-15 1 views
3

나는 문자 그대로이 과거의 5 시간 동안 이것을 계산하려고 노력하고있다.plupload를 사용하여 대기열에서 파일을 제거하는 방법은 무엇입니까?

저는 온라인에서 찾은 수많은 방법을 시도했지만 아무도 작동하지 않았습니다. 지금까지이 방법이 가장 효과적이었습니다 (단 하나의 오류 만 보여줍니다).

오류 : "잡히지 않은 ReferenceError : deletefile이 정의되지 않았습니다." "제거"하이퍼 링크를 클릭 할 때만 오류가 발생합니다.

//UPLOAD CODE 
$(document).ready(function() { 
// Custom example logic 
function $(id) { 
    return document.getElementById(id); 
} 


var uploader = new plupload.Uploader({ 
    runtimes : 'gears,html5,flash,silverlight,browserplus', 
    browse_button : 'pickfiles', 
    container: 'container', 
    drop_element: 'uploadBox', 
    max_file_size : '10mb', 
    url : 'upload.php', 
    flash_swf_url : '../js/plupload/plupload.flash.swf', 
    silverlight_xap_url : '../js/plupload/plupload.silverlight.xap', 
    filters : [ 
     {title : "Image files", extensions : "jpg,gif,png"}, 
     {title : "Zip files", extensions : "zip"} 
    ] 


    //, 
    //multipart_params : { 
    // "title" : $("#title").val(), 
    // "descripition" : $("#description").val() 
     //} 
}); 

uploader.bind('Init', function(up, params) { 
    if (uploader.features.dragdrop) { 
     var target = $("uploadBox"); 

     target.ondragover = function(event) { 
      event.dataTransfer.dropEffect = "move"; 
      this.className = "dragover"; 
     }; 

     target.ondragenter = function() { 
      this.className = "dragover"; 
     }; 

     target.ondragleave = function() { 
      this.className = ""; 
     }; 

     target.ondrop = function() { 
      this.className = ""; 
     }; 
    } 
}); 

uploader.bind('FilesAdded', function(up, files) { 
    function deletefile(i) { 
     uploader.splice(i,1); 
    } 
    for (var i in files) { 
     $('filelist').innerHTML += '<div id="' + files[i].id + '">' + files[i].name + ' (' + plupload.formatSize(files[i].size) + ') <a href="#" onclick="deletefile(\'' + i + '\');">Remove</a><b></b></div>'; 
    } 
}); 

uploader.bind('UploadProgress', function(up, file) { 
    $(file.id).getElementsByTagName('b')[0].innerHTML = '<span>' + file.percent + "%</span>"; 
}); 

$('uploadfiles').onclick = function() { 
    uploader.start(); 
    return false; 
}; 

uploader.init(); 
}); 

감사합니다. 이와

uploader.bind('FilesAdded', function(up, files) { 
    function deletefile(i) { 
     uploader.splice(i,1); 
    } 
    for (var i in files) { 
     $('filelist').innerHTML += '<div id="' + files[i].id + '">' + files[i].name + ' (' + plupload.formatSize(files[i].size) + ') <a href="#" onclick="deletefile(\'' + i + '\');">Remove</a><b></b></div>'; 
    } 
}); 

:

답변

3

에 id,이 대체하려고 할 수 있습니다 (그래서는 $('#filelist')를 사용하여) filelist을 가정 할 $('#uploadfiles')을해야합니다 나는 또한 $('uploadfiles')을 가정

uploader.bind('FilesAdded', function(up, files) { 
var deleteHandle = function(uploaderObject, fileObject) { 
     return function(event) { 
      event.preventDefault(); 
      uploaderObject.removeFile(fileObject); 
      $(this).closest("div#" + fileObject.id).remove(); 
     }; 
    }; 

    for (var i in files) { 
     $('#filelist').append($('<div id="' + files[i].id + '">' + files[i].name + ' (' + plupload.formatSize(files[i].size) + ') <a href="#" id="deleteFile' + files[i].id + '">Remove</a></div>')); 
     $('#deleteFile' + files[i].id).click(deleteHandle(up, files[i])); 
    }  
}); 

을하지만입니다 문제의 범위를 벗어난 희망이 도움이 될 것입니다.

0
// jquery plugin 
uploader.plupload('getUploader').splice(); 
$('.plupload_filelist_content', uploader).empty(); 
0
uploader=newplupload.Uploader({ 
//----- 
}); 

uploader.bind('FilesAdded',function(up,files) 
{ 
//---- 
up.refresh();//RepositionFlash/Silverlight 
}); 

uploader.bind('QueueChanged',function(up,files){ 

//#doc-filelist is the id of dive, which shows the Queue 
$('#doc-filelist').html(''); 

$.each(uploader.files,function(i,file){ 
$('#doc-filelist').append(
'<divid="'+file.id+'">'+ 
file.name+'('+plupload.formatSize(file.size)+')<b></b>'+ 
'<spanclass="remove_file"data-file="'+i+'">X</span>'+ 
'</div>'); 
}); 

if(uploader.files.length==0){ 
$('#uploadfiles').addClass('disabled'); 
} 

//console.log(uploader.files); 
}); 

uploader.bind('UploadComplete', function (up, file) { 
    up.splice(); 
    up.refresh(); 

}); 


$('.relevant-document').on('click','.remove_file',function(e){ 

uploader.splice($(this).attr('data-file'),1); 

uploader.refresh(); 
});