2011-08-27 120 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>