2011-08-27 165 views
2

我正在使用Plupload和Rails應用程序。上傳器允許用戶提交圖像,但我要求圖像大於某個最小像素大小。處理從Plupload接收到的圖像時,在服務器端進行驗證。Plupload錯誤信息

現在,上傳工作正常,但是當一個特定的文件失敗時,用戶看到一個橙色的三角形,如果他們把鼠標懸停在它上面,他們會得到「HTTP錯誤」。這對於普通用戶來說是無用的。

這是我在我的軌控制器現在:

def create 
    @photo = current_user.photos.new(:image => params[:file]) 
    if @photo.save 
     head :ok 
    else 
     head :bad_request 
    end 
end 

怎樣從我的應用程序傳回的描述性錯誤消息Plupload因此它們可以被顯示在橙色三角用戶?

我是否需要返回一些json或xml或其他不同?我已經嘗試過返回不合格圖像對象的不同表示形式,但到目前爲止,我所做的一切都沒有得到Plupload拾取的錯誤消息。

我感謝任何幫助!

+0

你有沒有找到一個解決這個?我在服務器端發生錯誤時收到相同的'Http Error',除了我正在使用.NET。 –

+0

不,從來沒有找到解決方法,並退出使用Plupload。 – Andrew

回答

0

多個上傳carrierware plupload

#app/controllers/adm/galerias_imagem.rb 
    class Adm::GaleriasImagensController < ApplicationController 
    layout "adm_layout" 
    .... 
    def create 

     @adm_galerias_imagem = Adm::GaleriasImagem.new(adm_galerias_imagem_params) 
     respond_to do |format| 
      if @adm_galerias_imagem.save 
       head :ok 
     else 
      head :bad_request   
     end 
     end 

#app/views/adm/galerias_imagens/new.html.erb 
<div id="filelist">Your browser doesn't have Flash, Silverlight or HTML5 support.</div> 
<br /> 

<div id="container"> 
<a id="pickfiles" href="javascript:;">[Select files]</a> 
<a id="uploadfiles" href="javascript:;">[Upload files]</a> 
</div> 


<%= link_to 'Back', adm_galerias_imagens_path, class: "btn btn-default" %> 

<% content_for :js do %> 
$(function(){ 
    var uploader = new plupload.Uploader({ 
    runtimes : 'html5,flash,silverlight,html4', 
    browse_button : 'pickfiles', // you can pass in id... 
    container: document.getElementById('container'), // ... or DOM Element itself 
    url : '<%= adm_galerias_imagens_path %>', 
    multipart: true, 
    max_file_size : '10mb', 
    multipart_params: { 
     "authenticity_token" : "<%= form_authenticity_token %>", 
     '<%= Rails.application.config.session_options[:key] %>': '<%= request.session_options[:id] %>', 
     "adm_galerias_imagem[galeria_id]": <%= params[:id] %> 
    }, 
    flash_swf_url : '/assets/Moxie.swf', 
    silverlight_xap_url : '/assets/Moxie.xap', 
    file_data_name:"adm_galerias_imagem[imagem]", 
    filters : { 
     max_file_size : '10mb', 
     mime_types: [ 
     {title : "Image files", extensions : "jpg,gif,png"}, 
     {title : "Zip files", extensions : "zip"} 
     ] 
    } 
    }); 
uploader.bind('Init', function(up, params) { 
    $('#filelist').html("<div>Current runtime: " + params.runtime + "</div>"); 
}); 
uploader.bind('FilesAdded', function(up, files) { 
    $.each(files, function(i, file) { 
    $('#filelist').append(
     '<div id="' + file.id + '">' + 
     'File: ' + file.name + ' (' + plupload.formatSize(file.size) + ') <b></b>' +'</div>' 
    ); 
}); 
}); 
uploader.bind('UploadProgress', function(up, file) { 
    $('#' + file.id + " b").html(file.percent + "%"); 
}); 
$('#uploadfiles').click(function(e) { 
    uploader.start(); 
    e.preventDefault(); 
}); 
uploader.init(); 
}); 
<% end %> 

#app/views/layouts/adm_layout.html.erb 

    <!--Scripts--> 
     <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> 
     <script type="text/javascript"> 
      <%= yield :js %> 
     </script>