plupload removeFiles

10,240

Solution 1

A few things...

1st you have to bind the filesAdded event after calling the init() function.

uploader.init();

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

2nd you can filter the files extension using the prop filters when defining plupload

uploader = new plupload.Uploader({
        ...,
        filters: [
            { title: "Image files", extensions: "jpeg,jpg,gif,png" }
        ],
        ...
    });

3rd here's a working sample to remove files from plupload

$.each(uploader.files, function (i, file) {
    if (file && file.id != currentFile.id) {
        uploader.removeFile(file);
    }
});

Cheers!

Solution 2

When there is no upload progress and you want to remove all queued files from uploader list:

var queueLength = uploader.files.length;

for (i = 0; i < queueLength; i++) {

if (uploader.files[0] && uploader.files[0] !== undefined) {

uploader.removeFile(uploader.files[0]);

}

}

Note: If you try to remove files by index, some files are left in the list; because every time a file item is removed from the list, it is refreshed and indexes are resorted.

Solution 3

You need to pass the id of the file you want to remove to removeFile:

uploader.removeFile(files[i].id)

Solution 4

You can use callback "QueueChanged", it works for me as well.

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

  var file_count = up.files.length;
  for(i = 0; i < file_count; i++) {
    if(i != (file_count - 1)) up.removeFile(up.files[i]);
  }

});
Share:
10,240
stackuser10210
Author by

stackuser10210

Updated on June 13, 2022

Comments

  • stackuser10210
    stackuser10210 about 2 years

    I'm trying to remove files with not allowed extensions on the FilesAdded event. (I can't use the filter parameter as I need an exclusive list).

    I have some code a bit like this:

    uploader.bind('FilesAdded', function(up, files) {
        var count = files.length;
        var i = 0;
        for (i;i<count;i++) {
            var validExt = validate(files[i].name);
            if(!validExt){
    

    I need to remove the files added if the extensions aren't valid. I've tried the following:

    uploader.splice(i,1)
    uploader.removeFile(files[i]);
    uploader.refresh();
    

    The FilesRemoved event is fired, but removed files still get uploaded with uploader.start().

    I don't know if this is a bug in the program, or too obscure to expect an easy answer to, but if anyone can help, I'd be really grateful. I don't think I'm missing anything obvious.

    Thanks.

  • Yaroslav
    Yaroslav over 11 years
    consider adding some comments to your solution and formatting the code, it will make it more understable for the OP and future visitors
  • stackuser10210
    stackuser10210 almost 11 years
    *Hi. Thanks. I think I probably found a fix way back. To clear up, I think you do pass the file object rather than the ID. Works for me at least in the current plupload release. I'm not sure yours is the best answer - I don't think I was using jQuery, but it's good enough for me.
  • Json
    Json over 7 years
    This was the only method that worked for me, unfortunately I spent a lot of time with this and came to the same conclusion before I saw this answer..