2011-12-28 82 views
1

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

我按照给定-以下步骤

  1. 下载uploadify和下资产提取/即资产/ uploadify
    一个。 uploadify.swfcancel.png资产/图片
    b。 jquery.uploadify.v2.1.4.js,,和swfobject.js

    资产/ Javascript角
    ℃。 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 ",类= 'uploadify'"

请指出我哪里出错了。

感谢 约翰

回答

0

这为我工作

$(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> 

我相信这是与是encodeURI问题,加上在CSRF令牌的迹象。我读了这个地方,但不知道现在在哪里....值得一试虽然