2010-09-17 3 views
2

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

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

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

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

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

+0

Как далеко вы получите? Получает ли файл доступ к вашему серверу? – russau

+0

Нет файла никуда. Но я знаю, что произошла ошибка, потому что значок уведомления в диалоговом окне plupload является восклицательным знаком. – dennismonsewicz

ответ

0

Вот весь мой код базы за попытку получить эту работу

$('#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(); 
     } 
    }); 
2

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

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

Вы должны поместить этот код перед $('form').submit() линии:

uploader = $('#plupload').pluploadQueue(); 
uploader.bind('Error', function(error){ 
    console.log(error); 
}); 
1

Другой поздний ответ. Если бы я тебя я бы начать с Шанжане такие вещи, как:

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

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

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

и тому подобное:

$('form').submit(); 

в:

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

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

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

Просто для удобства и отладки.

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

uploader.init(); 

Может быть:

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

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

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

2

Связывание события ошибки требуется два Params:

var uploader = $("#uploader").pluploadQueue(); 
    uploader.bind('Error', function(uploader, e) { 
    console.error(e); 
    }); 
+0

Для меня 'pluploadQueue()' возвратил объект jQuery, а не 'plupload.Uploader', и не было доступа к последнему, потому что это была неэкспонированная внутренняя переменная в виджетах. Может, я что-то пропустил, но мне показалось, что это коварный дизайн. – Walf

0

Я также искал механизм обработки ошибок, предоставленной 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