Gmail文件上传进度条中的Flash

时间:2012-09-15 13:08:14

标签: javascript html5 web-applications file-upload

我发现的一些资源声称,GMail文件上传包含Flash以显示进度条或允许多个文件上传。

例如:

我的问题是,GMail使用Flash生成上传进度条吗?如果没有, GMail如何在不支持FileAPI的IE9中实现进度条?我做了几次测试,在GMail文件上传过程中我无法确认是否存在Flash:

  • 我安装了FlashBlocker,它有效地阻止了Flash内容。但是,GMail文件上传进度栏未被阻止。
  • 我右键单击进度条以查看它是否是Flash小程序,但不是不是。
  • 我检查了源代码,但是我没有找到任何对.swf代码的引用。

那么GMail如何改变其文件上传功能,该功能会在包括IE9在内的所有浏览器中显示?

请问,如果其他开发者可以获得相同的结果,或者文件上传进度条是否特定于Google?

我知道有很多插件可供Google上传,但我希望有干净的JavaScript,HTML5,PHP,CSS3以及与IE9的兼容性。因此,如果我理解了这个主题,我愿意自己编写所有代码。

我使用以下工具:

  • 的Javascript
  • HTML5
  • PHP
  • MySQL的
  • CSS3

谢谢。


更新

看起来GMail使用Flash在上传文件时计算进度百分比。它使用CSS来生成进度条,因此没有使用Flash小程序来显示进度条。

我通过在IE9中禁用Flash来发现这一点。与Chrome相比,可以在IE 9中轻松禁用Flash。

如果您有任何要添加到此主题的内容,请高兴地讨论。例如,知道Flash applet如何生成文件上传进度百分比以及如何使用JavaScript或CSS传达该信息将会很有趣。

2 个答案:

答案 0 :(得分:3)

我已经进一步探索过,我必须确认,是的,至今,GMail必须使用支持文件/附件上传的多个Flash对象。

很难在Chrome中禁用Flash。但是,它可以在IE中禁用。在IE中禁用Flash后,GMail已经切换到另一个没有进度条的交互式上传系统。

这清楚地证明了GMail仍然使用Flash来支持其上传例程。

答案 1 :(得分:2)

Google大约2年前转为HTML5多文件上传。我认为他们使用后备闪存上传器。 http://www.webmonkey.com/2010/04/google-turns-to-html5-for-gmails-new-drag-and-drop-attachments/

此库(jQuery文件 - 上传 - 此处演示:http://blueimp.github.com/jQuery-File-Upload/)声称它可以使用Internet Explorer的文件进度(至少某种方式; - )):

  

所有版本的Internet Explorer也将更新全局进度   每个基于iframe的上传后栏。但是因为IE没有报道   文件大小,全局进度条将测量每个上传的文件   同样不考虑上传文件的大小。   https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support