【问题标题】:Plupload and error generationPlupload 和错误生成
【发布时间】:2014-09-08 18:54:32
【问题描述】:

我正在开发一个使用plupload 库进行文件上传的应用程序。我似乎无法让文件上传工作,因为存在某种错误,但我无法让这个错误发出警报或记录。

有人能做到吗?

这是我当前的代码:

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

提前感谢您的帮助!

【问题讨论】:

  • 你能走多远?文件是否到达您的服务器?
  • 不,文件不会去任何地方。但是我知道会发生错误,因为plupload对话框中的通知图标是感叹号。

标签: jquery codeigniter plupload


【解决方案1】:

所以我知道这可能为时已晚,但我刚开始使用 plupload 并且心情很好......

控制台从不记录任何内容的原因是因为您正在执行的绑定仅在所有上传完成后才会发生。

您需要将此代码放在$('form').submit() 行之前:

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

【讨论】:

    【解决方案2】:

    绑定到错误事件需要两个参数:

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

    【讨论】:

    • 对我来说,pluploadQueue() 返回一个 jQuery 对象而不是 plupload.Uploader 并且无法访问后者,因为它是小部件中未公开的内部变量。也许我错过了什么,但对我来说这似乎是糟糕的设计。
    【解决方案3】:

    另一个迟到的答案。如果我是你,我会从更改以下内容开始:

    $('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 应该会有所帮助。 :)

    【讨论】:

      【解决方案4】:

      这是我试图让它工作的整个代码库

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

      【讨论】:

        【解决方案5】:

        我也在寻找 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

        【讨论】:

          猜你喜欢
          • 2014-07-04
          • 2011-10-20
          • 2015-01-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-03-26
          • 2012-05-30
          • 2016-09-28
          相关资源
          最近更新 更多