5

こんにちは、私は現在 railscasts jquery ファイル アップロード チュートリアルのプログレス バー コード ( http://railscasts.com/episodes/381-jquery-file-upload ) を使用しており、Amazon S3 を追加する前は正常に動作していました。UIなしでjqueryファイルアップロードの基本バージョンのみを使用しています。

バーが表示されますが、空の灰色のバーです (ただし、写真は完全にアップロードされます)。これには理由がありますか?そして、これを行う別の方法はありますか(機能するように)?

写真/new.html.erb

<div class="clearfix">

<div class="uploadreminder">
    Upload multiple pictures at once or drag them directly to the browser!
</div>
<%= form_for([@user, @album, @photo], :html => { :multipart => true }) do |f| %>

<%= f.file_field :avatar, multiple: true, name: "photo[avatar]" %>

<% end %>

<div class="finisheduploading">
    <%= link_to "Back to album", user_album_path(@user, @album) %>
</div>



<div id="pics">
    <%= render :partial => "photo", :collection => @photos %>
</div>


    #this is the part that is supposed to make the progress bar
<script id="template-upload" type="text/x-tmpl">
<div class="upload">
  {%=o.name%}
  <div class="progress"><div class="bar" style="width: 0%"></div></div>
</div>
</script>
</div>

アプリケーション.js

//= require jquery
//= require jquery_ujs
//= require fancybox
//= require 'js/bootstrap.js'
//= require jquery-fileupload/basic
//= require jquery-fileupload/vendor/tmpl
//= require_tree .

$(document).ready(function() {

  $("a.fancybox").fancybox();
  $("a.fancybox").attr('rel', 'gallery').fancybox();


});

photos.js.コーヒー

jQuery ->
$('#new_photo').fileupload
  dataType: "script"
  add: (e, data) ->
    types = /(\.|\/)(gif|jpe?g|png)$/i
    file = data.files[0]
    if types.test(file.type) || types.test(file.name)
      data.context = $(tmpl("template-upload", file))
      $('#new_photo').append(data.context)
      data.submit()
    else
      alert("#{file.name} is not a gif, jpeg, or png image file")
  progress: (e, data) ->
    if data.context
      progress = parseInt(data.loaded / data.total * 100, 10)
      data.context.find('.bar').css('width', progress + '%')

私の完全なコードはここにあります: https://github.com/EdmundMai/pholderbeta/blob/master/app/views/photos/new.html.erb

4

2 に答える 2

4

それが役立つ場合は、それについてのチュートリアルを書きました: http://pjambet.github.com/blog/direct-upload-to-s3/、ライブデモがあります: http://direct-upload.herokuapp.com /photosコードは github でホストされています: https://github.com/pjambet/direct-upload

于 2012-10-25T21:36:01.400 に答える
2

Ryan は、css ファイルにスタイルを追加する必要があることを 1 つ見逃していました。彼のコードを見ると、painting.css ファイルに次のスタイルが見つかります。

.upload .progress .bar {
  background: none repeat scroll 0 0 #3EC144;
  height: 100%;
}
于 2014-08-18T07:09:50.890 に答える