XMLHttpRequest -事件的一个问题.加载和事件.总值



我使用XMLHttpRequest进行文件上传,在浏览器中我有一个进度条,显示图像已经上传了多少部分。

  xhr.upload.addEventListener('progress', onprogressHandler, false);
  function onprogressHandler(event) {    
    resp.innerHTML = event.loaded +' and '+ event.total;
    var percent = Math.round((event.loaded / event.total) * 100);
    var calc_display = document.getElementById('calc');
    calc_display.innerHTML = percent;
  };

如果我选择要上传的图像并发送表单,那么我总是看到相同的event.loadedevent.total值。我认为event.total的值是文件的大小

我是一个新手,所以我没有那么多的经验,但我怎么可能总是有相同的价值观?(通常约2,700.000 kB)

哪里可能有问题?

进度事件规范提到进度事件也可以有一个布尔值的.lengthComputable属性。如果该属性在进度事件上为false,我希望event.loadedevent.total的值不反映上传的进度。

规范说,如果设置了XMLHttpRequest的Content-Length头,.lengthComputable将为真,.total将反映文件的长度。事实证明,XMLHttpRequest将不允许设置Content-Length——在该锚的下方搜索Content-Length。据推测,他们这样做是因为脚本可能会错误地计算它正在发送的数据的长度,而用户代理则不太可能这样做。

查看服务器正在接收的请求。他们有Content-Length标题吗?

如果您上传的视频/图像大小较小,则值可能相同。你可以通过上传大小超过70MB的视频来检查你的加载值和total值,它应该会给你total和loaded

不同的值

相关内容

  • 没有找到相关文章

最新更新