Plupload - ограничение только одним файлом - PullRequest
24 голосов
/ 31 октября 2011

Я не вижу опции в документации API plupload по ограничению количества загружаемых файлов до любого числа, даже до 1.

Ошибка документа?или функция не работает?Если этого не будет, я буду работать над тем, чтобы это произошло, если это кому-нибудь понадобится ..

Ответы [ 13 ]

1 голос
/ 17 июля 2012

Разрешить загрузку только одного файла:

uploader.bind('FilesAdded', function(up, files) {
    $.each(files, function(i, file) {
        if(uploader.files.length!=1){uploader.removeFile(file); return;}
    });
});

Разрешить выбор одного файла одновременно:

uploader.bind('FilesAdded', function(up, files) {
    $.each(files, function(i, file) {
        if(i){up.removeFile(file); return;}
    });
});

Разрешить одновременную загрузку одного файла:

uploader.bind('FilesAdded', function(up, files) {
    $.each(files, function(i, file) {
        if(uploader.files.length!=1){uploader.removeFile(file); return;}
    });
});
uploader.bind('FileUploaded', function(up, file,response) {
    up.removeFile(file);
});
0 голосов
/ 21 января 2015

Попробовав каждое из решений, я пришел к простейшему из всех - который, кажется, работает.

Я использую базовый API, и для multi_selection установлено значение false.Затем, после того как первый файл выбран (добавлен), вторая строка кода, которую я вставил в событие FilesAdded, скрывает ссылку просмотра.Я не думаю, что это можно сделать с помощью виджетов jquery, и я также обнаружил, что, если ссылка на загрузку не покрывает, где находится ссылка для просмотра, она остается активной.

uploader.bind('FilesAdded', function(up, files) {
//line below hides button
document.getElementById("browse").style.display = "none";

var html = '';
plupload.each(files, function(file) {
html += '<li id="' + file.id + '">' + file.name + ' (' + plupload.formatSize(file.size) + ') <b></b></li>';
});
document.getElementById('filelist').innerHTML += html;

});

0 голосов
/ 05 апреля 2013

Удалите ненужные файлы непосредственно перед загрузкой:

$('uploadfiles').onclick = function()
            {
                while (uploader.files.length > 1)
                {
                        uploader.removeFile(uploader.files[0]);
                }

                uploader.start();
                return false;
            };
...