【问题标题】:Rails 3.1 paperclip uploadify issueRails 3.1 回形针上传问题
【发布时间】:2011-12-28 16:15:46
【问题描述】:

我已经为回形针和uploadify 设置了应用程序。回形针工作正常。但是对于多个文件上传,uploadify 不起作用,即它不会更改<input type="file",而且在文件选择表单中,它不允许选择多个文件。

我已按照以下步骤进行

  1. 在assets/下下载uploadify并解压,即assets/uploadify
    一种。 uploadify.swfcancel.png 在资产/图像中
    湾。 jquery.uploadify.v2.1.4.jsjquery.uploadify.v2.1.4.min.jsswfobject.js

    资产/javascripts
    C。 uploadify.css 转为 assets/stylesheets
    d。已创建middleware 目录。

  2. 添加以下脚本上传

    $(document).ready(function() {
      <% key = Rails.application.config.session_options[:key] %>
      var uploadify_script_data = {};
      var csrf_param = $('meta[name=csrf-param]').attr('content');
      var csrf_token = $('meta[name=csrf-token]').attr('content');
      uploadify_script_data[csrf_param] = encodeURI(encodeURIComponent(csrf_token));
      uploadify_script_data['<%= key %>'] = '<%= cookies[key] %>';
    
      $('.uploadify').uploadify({
        uploader        : '/assets/uploadify.swf',
        script          : '/assets/uploadify',
        cancelImg       : '/images/cancel.png',
        auto            : true,
        multi           : true,
        removeCompleted : true,
        scriptData      : uploadify_script_data,
        onComplete      : function(event, ID, fileObj, doc, data) {
        }
      });
    });
    </script>
    
  3. 列表项

  4. 还有,修改session_store.rb, application.js

  5. 最后,添加类到输入type=file ", class= 'uploadify'"

请指出我哪里出错了。

谢谢 约翰

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3.1 uploadify


    【解决方案1】:

    这对我有用

    $(document).ready(function() {
      <% key = Rails.application.config.session_options[:key] %>
        var uploadify_script_data = {};
    
        // Fetch the CSRF meta tag data
        var csrf_param = $('meta[name=csrf-param]').attr('content');
        var csrf_token = $('meta[name=csrf-token]').attr('content');
        var session_param = '#{key}'
        var session_key = '#{cookies[key]}'
    
        // Now associate the data in the config, encoding the data safely
        uploadify_script_data[csrf_param] = encodeURI(encodeURIComponent(csrf_token));
        uploadify_script_data[session_param] = encodeURI(encodeURIComponent(session_key));
    
        $('.uploadify').uploadify({
          uploader        : '/assets/uploadify.swf',
          script          : '/assets/uploadify',
          cancelImg       : '/images/cancel.png',
          auto            : true,
          multi           : true,
          removeCompleted : true,
          scriptData      : uploadify_script_data,
          onComplete      : function(event, ID, fileObj, doc, data) {
          }
        });
      });
    </script>
    

    我认为这是 csrf-token 中的 encodeURI 和加号的问题。我在某处读到了这篇文章,但不确定现在在哪里......虽然值得一试

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-22
      相关资源
      最近更新 更多