2011-08-27 2 views
2

레일 앱과 함께 Plupload를 사용하고 있습니다. 업 로더는 사용자가 이미지를 제출하도록 허용하지만 이미지가 특정 최소 픽셀 크기보다 커야합니다. 이것은 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

을 plupload? .NET을 사용하는 것을 제외하고는 서버 측 오류가 발생할 때 동일한 'Http Error'를 수신합니다. –

+0

아니, 그것에 대한 해결 방법을 발견하고 Plupload를 사용하여 종료하지 마십시오. – Andrew

답변

0

여러 업로드 carrierware 당신이 이제까지이 문제를 해결하기위한 방안을 찾으셨습니까

#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>