Search code examples
javascriptuploadplupload

plupload removeFiles


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.


Solution

  • 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!