2012-06-29 29 views
0

我正在使用Rails 3.1和Paperclip,并试图在单个页面上实现Uploadify以进行多个文件上传。我试过以下的各种样品,包括:Rails3-Paperclip-UploadifyRails 3 Uploadify + Paperclip文件数据从未发送

目前,我有其中有一个人跟我UploadImage模型许多关系的上传模式 - 这是我的设置到目前为止我的看法:

UploadImages /新.html.erb

<%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js" %> 
<%= javascript_include_tag "swfobject.js", "jquery.uploadify.v2.1.0.js" %> 

<script type="text/javascript" charset="utf-8"> 
    <%- session_key = Rails.application.config.session_options[:key] -%> 
    $(document).ready(function() 
    { 
     // Create an empty object to store our custom script data 
     var uploadify_script_data = {}; 

     // Fetch the CSRF meta tag data 
     var csrf_token = $('meta[name=csrf-token]').attr('content'); 
     var csrf_param = $('meta[name=csrf-param]').attr('content'); 

     // Now associate the data in the config, encoding the data safely 
     uploadify_script_data[csrf_token] = encodeURI(encodeURI(csrf_param)); 

     $('.uploadify').uploadify 
     ({ 
      uploader  : '/uploadify/uploadify.swf', 
      cancelImg  : '/uploadify/cancel.png', 
      multi   : true, 
      auto   : false, 
      onComplete  : function(event, queueID, fileObj, response, data) 
           { 
            var dat = eval('(' + response + ')'); 
            $.getScript(dat.upload); 
           }, 
      scriptData  : { 
            '_http_accept': 'application/javascript', 
            'format' : 'json', 
            '_method': 'post', 
            '<%= session_key %>' : encodeURIComponent('<%= u cookies[session_key] %>'), 
            'authenticity_token': encodeURIComponent('<%= u form_authenticity_token %>'), 
            'upload_id' : '<%= @upload.id %>' 
           } 
     });   
    }); 


</script> 

<%= form_for @upload.upload_images.build, :html => { :class => "upload", :multipart => true } do |f| %> 
        <%= f.file_field :image, :class => "uploadify" %> 
        <%= submit_tag "Submit Upload", :disable_with => "Uploading", :class => "submit"%> 
<% end %> 

我看到uploadify闪光灯按钮,我选择几个文件,并提交,但是这是所有我在PARAMS看到:

{ “UTF-8”=> “✓” , “authenticity_token”=> “K1bSH/FO0Hjdum0aiNU45mHJXezXTiCgh9XVmk1jrZM =”, “提交”=> “提交上传”, “动作”=> “创建”, “控制器”=> “upload_images”}

作为你可以看到没有文件数据被发送,甚至我指定的scriptData都没有被发送,我注意到其他人的代码使用参数uploadify功能。在PHP框架中,他们将它指向处理保存的.php文件。我使用回形针,所以我不知道如何实现这...也许这是我的问题?让我知道你是否需要任何额外的细节。

回答

0

我找到了答案通过看这个问题:uploadify rails 3 nothing happens after the file is chosen

我有一些事件附加到我的提交按钮和脚本参数添加到uploadify功能我推测。

所以在我的config/routes.rb中首先我需要添加:

post "upload_images/create" 

在我看来,我说:

$('#submit').click(function(event){ 
      event.preventDefault(); 
     }); 


$('#submit').click(function(event){ 
      event.preventDefault(); 
      $('.uploadify').uploadifyUpload(); 
}); 

,最后我加入了脚本参数去我最初的uploadify函数调用:

script   : '/upload_images/create' 

经过了许多小时的打击我的头反对它终于工作和理智!希望这可以帮助别人。