在我的rails应用程序中将jquery-file-uploader与carrierwave集成很多困难

时间:2016-01-17 21:08:28

标签: carrierwave jquery-file-upload ruby-on-rails-4.2 ruby-2.0

我已经被困在这个问题上好几个小时了,而且我不确定如何修复它。基本上我允许用户上传视频,因此需要一个进度条来显示上传的时间。

提交表单后,视频会成功上传。但是,jquery对进度条没有任何作用,表明上传正在进行。

javascript在下面。 Edit_User是要提交的表单的类。

$(function () {
$('.edit_user').fileupload({
    dataType: 'json',
    add: function (e, data){
        data.submit();
    },
    progress: function (e, data){
        var progress = parseInt(data.loaded / data.total * 100, 10);
        $('.bar').css('width', progress + '%');
     },
   });
 }); 

这是我的表格:

<div class="field">
 <%= f.label :video %><br>
 <%= f.file_field :video %>
 <%= f.hidden_field :video_cache %>
 </div>
<div class="progress"><div class="bar" style="width: 0%; height:10px"></div></div>
   <div class="actions">
    <%= f.submit "Continue" %>
  </div>

我知道javascript可以访问该表单,因为我可以使用javascript来声明上传...&#39;例如,当用户选择要上传的表单时,我无法获得进度条以显示进度,或者执行其他操作,例如状态&#34;上传完成&#34;。

编辑:好的,所以我设法让它使用了一些CSS,但它似乎以不太可能的速度上传。我上传了一个23MB的文件,进度条在2秒内达到了大约100%。什么是jquery-file-uploader用来衡量文件是否上传?

请帮忙!

1 个答案:

答案 0 :(得分:0)

如果您在计算机上进行开发并上传到计算机,那肯定是合理的时间。

您可以查看浏览器上的开发者工具,并查看衡量上传时间的长短。在Chrome中,右键单击页面,选择&#34;检查&#34;然后转到“网络”选项卡。现在,当您上传文件时,您应该会看到浏览器测量时间。

(我知道它可以在IE和Safari上使用,但我不太了解这些浏览器,告诉你如何。你可能需要在这些浏览器上安装一些东西来访问这些工具)