是否可以在没有 ajax 的情况下在正常文件上传中显示进度条


Is it possible to show a progressbar in a normal file upload, without ajax?

是否可以在没有 ajax 的情况下在正常文件上传中显示进度条?例如,我有一个表格:

<form action='fileupload.php' method='POST'>
   <input type='file' name='file1' />
   <input type='submit' value='Upload'>
</form>

我选择一个文件并单击上传。是否可以显示进度条,直到文件完全上传并重定向页面?因为非 AJAX 上传对我的情况有好处,我不想仅仅为了进度条而使用整个复杂的插件。

编辑:

我知道这个问题到目前为止还没有决定性的答案,但它绝对不是标记的问题的重复。对那些无法理解的人的解释:文件上传的进度应该在两个地方知道 - 服务器,同时接收文件数据包。客户端浏览器,同时从服务器接收相应数据包的确认(互联网协议?目前,几乎所有进度条的算法都是基于显式发送与客户端上的javascript和服务器上的PHP之间的文件上传并行的AJAX数据。我的问题是,是否有任何方法可以在没有并行通信的情况下知道文件上传的进度,因为浏览器必须已经知道服务器收到的数据包......

您可以使用进度事件监视发送文件的进度。查看有关 https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Monitoring_progress 的示例