2012-06-29 53 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' 

經過了許多小時的打擊我的頭反對它終於工作和理智!希望這可以幫助別人。