Uploadify - как отменить загрузку? - PullRequest
1 голос
/ 06 февраля 2012

У меня простая проблема с Uploadify.Перед началом загрузки я хочу проверить некоторые критерии, это правда - я хочу прервать загрузку.Код ниже не работает должным образом, он загружает файл, даже если я вызываю uploadifyCancel.Как это исправить?

$("#fileuploader").uploadify({
            uploader: '/Scripts/uploadify.swf',
            script: '/Upload/'
            fileDataName: 'file',
            buttonText:'upload',
            multi: false,
            sizeLimit: 369878,
            simUploadLimit: 1,
            cancelImg: '/Images/uploadify-cancel.png',
            auto: true,
            onOpen:function(event,ID,fileObj) {
                var found = $('#uploaded-files-table tr[some-attr="1"]');

                if($(found).length == 0){
                    $('#list').attr('disabled','disabled');
                } else {
                    $("#fileuploader").uploadifyClearQueue();
                    $("#fileuploader").uploadifyCancel(ID);
                }
            }
        });

Ответы [ 3 ]

1 голос
/ 01 ноября 2016

Я не уверен, какую версию вы используете, но я мог бы сделать это ниже. Мне нужно остановить загрузку файла на основе расширения файла

'onAddQueueItem':function(file, e) {
 if (!(/\.(gif|jpeg|png|pdf)$/i).test(file.name)) {
$($this).data("uploadifive").removeQueueItem(file, 0, 10);
    file.skip = true; //This skip property stop uploading file
    }
}
0 голосов
/ 17 декабря 2012

используйте onSelect для загрузки.

Вы можете сделать так:

$("#fileuploader").uploadify({
            uploader: '/Scripts/uploadify.swf',
            script: '/Upload/'
            fileDataName: 'file',
            buttonText:'upload',
            multi: false,
            sizeLimit: 369878,
            simUploadLimit: 1,
            cancelImg: '/Images/uploadify-cancel.png',
            auto: true,
            'onSelect': function (file) {
                       if(file.type==".zip")
                       {//do something
                        }
                        else
                        {
                          //cancel upload
                         }
0 голосов
/ 07 февраля 2012

Код $("#fileuploader").uploadifyCancel(ID); работает правильно.Если вы добавите onComplete и onAllComplete, ни одно из этих событий не попадет, что означает, что событие отмены сработало.

Проблема в том, что uploadify по своей природе начинает загрузку файла ДО того, как произойдет событие onOpen.Проверьте здесь, похоже, что у них были те же проблемы с изменением данных скрипта на onOpen http://www.uploadify.com/forums/discussion/5611/uploadifysettings-not-posting-new-script-data/p1

У меня был некоторый успех отмены файлов, если они были размером более 600-700 КБ с $("#fileuploader").uploadifyCancel(ID); и $("#fileuploader").uploadifyClearQueue();.Я думаю, что это связано со скоростью загрузки.Поскольку это были файлы большего размера, событие отмены успело сработать до завершения загрузки.На живом сервере, а не на вашем локальном хосте, время загрузки будет медленнее, поэтому МОЖЕТ быть проблем с отменой событий во времени.Я бы не стал рисковать.

Возможный обходной путь - добавить на страницу, которая запускает загрузку, дополнительную кнопку и удалить auto: 'true' из вашей инициализации загрузки.Таким образом, вы можете проверить все необходимые значения перед началом загрузки.

...