Javascript 在没有ajax的情况下,是否可以在正常的文件上传中显示progressbar?

Javascript 在没有ajax的情况下,是否可以在正常的文件上传中显示progressbar?,javascript,php,jquery,ajax,file-upload,Javascript,Php,Jquery,Ajax,File Upload,在没有ajax的情况下,是否可以在正常的文件上传中显示progressbar?例如,我有一个表格: <form action='fileupload.php' method='POST'> <input type='file' name='file1' /> <input type='submit' value='Upload'> </form> 然后我选择一个文件并点击上传。在文件完全上传并重定向页面之前,是否可以显示进度条?因为非

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

<form action='fileupload.php' method='POST'>
   <input type='file' name='file1' />
   <input type='submit' value='Upload'>
</form>
然后我选择一个文件并点击上传。在文件完全上传并重定向页面之前,是否可以显示进度条?因为非AJAX上传对我的情况有好处,我不想只为progressbar使用整个复杂的插件

编辑:
我知道这个问题到目前为止还没有一个结论性的答案,但它肯定不是问题的重复。对那些不理解的人的解释:文件上传的进度应该在两个地方知道——服务器,同时接收文件包。客户端浏览器,同时接收来自服务器的对各自数据包Internet协议的确认?。目前,几乎所有的进度条算法都基于在客户端的javascript和服务器上的PHP之间显式地将AJAX数据与文件上传并行发送。我的问题是,如果没有并行通信,是否有任何方法可以知道文件上载的进度,因为浏览器必须已经知道在服务器上接收到的数据包…

您可以使用进度事件监视发送文件的进度。参见

上的示例。您可以使用进度事件监视发送文件的进度。参见什么进展的例子?上传的百分比?您不能显示百分比,但可以显示“请稍候”,或者您可以尝试在submit上启动progressbar并在submit的响应时停止。在下面的链接中,有人建议在没有ajax的情况下获得响应,我可以显示一个移动的标志,表明它正在上传。但进展很重要,因为文件可能很大。在php中,有没有一种方法可以实时获取当前正在上载的文件的大小,并使用ajax读取和显示该文件,而不是使用ajax上载整个文件?此外,现有解决方案之所以复杂,是因为解决的问题很复杂。您需要确保它在尽可能多的浏览器上工作。较旧的浏览器需要不同的iFrame、Flash、FileAPI等机制才能工作。有些解决方案需要特殊的服务器端代码/设置APC。所有这些都必须隐藏在一个通用的API后面。这不是重复,因为这个问题特别要求一个没有ajax的解决方案。您可能不喜欢实现,但问题是正确的。进展如何?上传的百分比?您不能显示百分比,但可以显示“请稍候”,或者您可以尝试在submit上启动progressbar并在submit的响应时停止。在下面的链接中,有人建议在没有ajax的情况下获得响应,我可以显示一个移动的标志,表明它正在上传。但进展很重要,因为文件可能很大。在php中,有没有一种方法可以实时获取当前正在上载的文件的大小,并使用ajax读取和显示该文件,而不是使用ajax上载整个文件?此外,现有解决方案之所以复杂,是因为解决的问题很复杂。您需要确保它在尽可能多的浏览器上工作。较旧的浏览器需要不同的iFrame、Flash、FileAPI等机制才能工作。有些解决方案需要特殊的服务器端代码/设置APC。所有这些都必须隐藏在一个通用的API后面。这不是重复,因为这个问题特别要求一个没有ajax的解决方案。您可能不喜欢这个实现,但问题是有道理的。这些都是专门针对AJAX的,或者至少是人们说AJAX时的意思,OP不希望这样。或者您可以使用表单元素的iframe和target属性。如果重新加载提交表单的页面,则无法跟踪进度事件。但是,如果您通过iframe发送表单,您可以向表单中添加事件侦听器,如load,并跟踪表单的提交时间。这是专门针对AJAX的,或者至少是人们说AJAX时的意思,OP不希望这样。或者,您可以使用iframe和form元素的target属性。如果重新加载提交表单的页面,则无法跟踪进度事件。但是,如果通过iframe发送表单,则可以向表单中添加事件侦听器,如load,并跟踪表单的提交时间。