在没有 AJAX 的情况下获取文件上传状态

Posted

技术标签:

【中文标题】在没有 AJAX 的情况下获取文件上传状态【英文标题】:Getting file upload status without AJAX 【发布时间】:2011-11-08 17:51:05 【问题描述】:

在我看来,如果信息已经通过浏览器输出给用户,它应该可以通过 javascript 以某种方式在 DOM 中访问。当您使用 webkit 浏览器(可能还有其他浏览器)使用旧的 iframe 技巧上传文件时,浏览器会在浏览器窗口底部的状态栏中显示上传百分比。能够利用它而不需要查询服务器以获取相同的信息,这将是非常惊人的。有没有人尝试过这样做?

【问题讨论】:

这很好,但该 API 不会暴露给 JavaScript。您需要使用插件。 【参考方案1】:

我尝试过这样的事情。如果使用 iframe 的旧方法上传文件,则只有在服务器端启用 APC(用于 php)时才能获取上传信息。使用 javascript,您可以知道的最大值是上传的开始和结束(通过使用 iframe onload 事件)。因此,您可以在文件上传开始时使用动画 gif,并在结束时删除动画 gif(这会导致 iframe 的 onload 事件)。

然后在上传后 iframe 将包含上传状态的任何错误消息。您可以通过在上传完成时将文件信息返回为 JSON 来做更多的事情。

【讨论】:

以上是关于在没有 AJAX 的情况下获取文件上传状态的主要内容,如果未能解决你的问题,请参考以下文章

按退出键中止 AJAX 文件上传

如何在没有表单的情况下获取文件上传

在没有activexobject的情况下获取上传文件的大小?

如何在上传之前获取文件名并在没有 fakepath 的情况下传递到另一个文本输入字段

使用ajax进行文件上传和数据插入

无法使用 $ajax() 在 PHP 中上传文件