4

我发现有几个资源声称,GMail File Upload 结合了 Flash 来显示进度条或允许多个文件上传。

例如:

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

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

那么GMail是如何实现它的文件上传功能的呢?它在包括IE9在内的所有浏览器中都显示出来了呢?

任何想法,如果其他开发人员可以达到相同的结果,或者文件上传进度条是否是谷歌特定的?

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

我使用以下工具:

  • Javascript
  • HTML5
  • PHP
  • MySQL
  • CSS3

谢谢你。


更新:

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

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

拜托,如果你对这个话题有什么要补充的,我很乐意讨论。例如,有趣的是,Flash 小程序如何生成文件上传进度百分比,以及它如何与 JavaScript 或 CSS 交流该信息。

4

2 回答 2

3

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

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

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

于 2012-09-19T17:40:45.543 回答
2

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

这个库(jQuery File-Upload - Demo here:http ://blueimp.github.com/jQuery-File-Upload/ )声称它可以使用 Internet Explorer 的文件进度(至少以某种方式;-)):

所有版本的 Internet Explorer 还将在每次基于 iframe 的上传后更新全局进度条。但是由于 IE 不报告文件大小,全局进度条将测量每个上传的文件,而不考虑上传文件的大小。 https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support

于 2012-09-15T13:29:25.293 回答