programing

:remote => 형식으로 파일 업로더를 사용하면 작동하지 않습니다.

megabox 2023. 9. 6. 21:59
반응형

:remote => 형식으로 파일 업로더를 사용하면 작동하지 않습니다.

기본적으로 내 폼에 파일 업로더를 포함하여 사용하면 :remote => true 기능을 취소하고 JS 대신 HTML로 작업을 처리하는 것 같습니다. 아이디어가 있습니까?

저는 단지 같은 문제에 직면했을 뿐인데, 이 문제를 해결하기 위해 다음과 같은 대안을 찾았습니다.

젬 리모티파트 => http://www.alfajango.com/blog/rails-3-ajax-file-uploads-with-remotipart/

jQuery 플러그인 'jaxy' => https://github.com/adamlogic/jquery-jaxy

첫 번째 옵션이 더 마음에 드는 것 같아요.하지만 선택권이 있는 건 좋습니다.=)

당신은 AJAX를 통해 파일을 업로드할 수 없기 때문에, 당신의 요청은 명백한 HTML로 다가옵니다. 왜냐하면 당신은 :js에 특정한 것을 가지고 있지 않고 레일은 그것이 단순한 HTML POST 요청이라고 생각하기 때문입니다.

https://github.com/JangoSteve/remotipart

gem 'remotipart', '~> 1.2'

그리고 나서.bundle install

//= require jquery.remotipart

sample_sample.sample.erb

<%= form_for @sample, :html => { :multipart => true }, :remote => true do |f| %>
  <div class="field">
    <%= f.label :file %>
    <%= f.file_field :file %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

컨트롤러에서

def create
  respond_to do |format|
    if @sample.save
      format.js
    end
  end
end

create.js.erb

// Display a Javascript alert
alert('success!');
<% if remotipart_submitted? %>
  alert('submitted via remotipart')
<% else %>
  alert('submitted via native jquery-ujs')
<% end %>

적어도 표준 방식으로는 AJAX 이미지 업로드가 작동하지 않습니다.

그것을 작동시키는 더 새로운 HTML5 기법들과 다음을 사용하는 해결책들이 있습니다.<iframe>

진행률 측정기로 여러 개의 파일 ajax 업로드를 하고 브라우저에 따라 다른 기술을 사용하도록 성능을 떨어뜨리는 훌륭한 라이브러리가 있습니다.

AJAX 업로드 라이브러리: http://valums.com/ajax-upload/

약간의 추가 작업이 필요하겠지만, 결과는 정말 좋을 수 있습니다!

언급URL : https://stackoverflow.com/questions/7376304/remote-true-not-working-when-a-file-uploader-is-used-in-form

반응형