Plupload и генерация ошибок - PullRequest
2 голосов
/ 17 сентября 2010

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

Кто-нибудь мог сделать это?

Вот мой текущий код:

uploader.bind('Error', function(error){
                    console.log(error);
                });

Заранее благодарен за любую помощь!

Ответы [ 5 ]

2 голосов
/ 08 марта 2011

Привязка к событию ошибки требует двух параметров:

  var uploader = $("#uploader").pluploadQueue();
  uploader.bind('Error', function(uploader, e) {
    console.error(e);
  });
2 голосов
/ 26 декабря 2010

Так что я знаю, что это, вероятно, слишком поздно, но я только начал с plupload и был в хорошем настроении ...

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

Вам необходимо поставить этот код перед строкой $('form').submit():

uploader = $('#plupload').pluploadQueue();
uploader.bind('Error', function(error){
   console.log(error);
});
1 голос
/ 07 марта 2011

Еще один поздний ответ. На твоем месте я бы начал с таких вещей, как:

$('form').submit(function(e) {

в нечто вроде:

$('form').bind('submit', function(e) {

и все в таком духе:

$('form').submit();

в

$('form').trigger('submit');

Также я бы переместил все эти привязки из $ (form) .submit.

uploader.bind('UploadProgress', function() {
    if (uploader.total.uploaded == uploader.files.length)
       $('form').submit();
});

Просто ради простоты и отладки.

К сожалению, до сих пор не знаю, что не так с вашим сценарием. Может быть, вам не хватает:

uploader.init();

Может быть:

if (uploader.total.uploaded == 0) {

не запускается.

Тем не менее, некоторые console.log после каждой строки должны помочь. :)

0 голосов
/ 08 сентября 2014

Я также искал механизм обработки ошибок, предоставляемый виджетом Plupload, ни один из ответов не работал. Итак, вот рабочий (для версии 2.1.2):

$(FileUpload.container).pluploadQueue({
        // General settings
        runtimes: 'html5,flash,silverlight,html4',
        url: "saveFiles",
        chunk_size: '1mb',
        rename: true,
        dragdrop: true,
        multipart : true,
        unique_names : true,
        filters: {
            // Maximum file size
            max_file_size: '16mb',
            // Specify what files to browse for
            mime_types: [
                {title: "XML files", extensions: "xml"}
            ]
        },
        // Flash settings
        flash_swf_url: '/plupload/js/Moxie.swf',
        // Silverlight settings
        silverlight_xap_url: '/plupload/js/Moxie.xap',
        init : {
            Error: function(up, args) {
                // Called when error occurs
                Daedalus.localMessage("XML file is not valid!");
            }
        }
    });

Объект "init" имеет больше поддерживаемых событий, см. http://www.plupload.com/examples/events

0 голосов
/ 17 сентября 2010

Вот моя база кода, чтобы попытаться заставить это работать

$('#plupload').pluploadQueue({
        runtimes : 'flash, html5',
        url : '/admin/upload/do_upload/',
        filters : [
            {title : "Image Files", extensions : "jpg,gif,png"}
        ],
        flash_swf_url : "/js/admin/plupload/plupload.flash.swf"
    });

    $('form').submit(function(e) {
        alert('EHY');
        var uploader = $('#plupload').pluploadQueue();

        // Validate number of uploaded files
        if (uploader.total.uploaded == 0) {
            // Files in queue upload them first
            if (uploader.files.length > 0) {
                // When all files are uploaded submit form
                uploader.bind('UploadProgress', function() {
                    if (uploader.total.uploaded == uploader.files.length)
                        $('form').submit();
                });

                uploader.start();

                uploader.bind('Error', function(error){
                    console.log(error);
                });
            } else
                alert('You must at least upload one file.');

            e.preventDefault();
        }
    });
...