0

我一直停留在这个问题上几个小时,现在,我不知道如何解决它。本质上,我允许用户上传视频,因此需要一个进度条来显示上传时间。很多困难在我的轨道整合jQuery的文件上传与carrierwave应用程式

表单提交后,视频成功上传。然而,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国家“上传...”当用户选择了一个表格以上传为例,但我无法获取进度条来显示进度,或者执行状态“上传完成”等其他操作。

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

请帮忙!

回答

0

如果你的计算机上开发,并上传到您的计算机,这是绝对合理的时间量。

您可以检查您的浏览器的开发者工具,看看它是如何长测量上传作为服用。在Chrome中,右键单击该页面,选择“检查”,然后转到网络选项卡。现在,当您上传文件时,您应该会看到浏览器测量时间。

(我知道这是可能的IE浏览器和Safari浏览器,但我不知道这些浏览器足够好,告诉你如何,你可能需要安装的东西来访问这些浏览器这些工具)