【发布时间】:2011-02-09 02:27:18
【问题描述】:
在 Firefox 3.6 中可以进行拖放文件上传。
A Google search for html5 drag-and-drop file uploading -gmail 给出如下内容:
- Native Drag + Drop file upload in Firefox 3.6
- http://www.appelsiini.net/2009/10/html5-drag-and-drop-multiple-file-upload
- http://www.thecssninja.com/javascript/drag-and-drop-upload
所有这些指南都使用 FileReader(或 Firefox 3.6 已弃用的 getAsBinary,其他浏览器也不支持)。
不过,Google 最近发布了 Gmail 更新,允许在 Chromium 和 Firefox 和 Chromium does not have FileReader 中拖放文件上传。我用的是最新的Chromium nightly,可以拖拽上传文件,但不支持FileReader。
我看到有人提到可以通过拖放到<input type="file" /> 上进行拖放上传,但是一次只能支持一个文件,而 Gmail 的上传器可以处理多个文件被拖放到上面,所以这是显然不是他们在做什么。
所以问题是,他们是如何做到的?您如何支持 Chromium 进行 HTML5 文件上传?另外,能支持Safari吗?
【问题讨论】:
-
P.S.阅读源代码非常困难,因为 Gmail 的源代码由于他们对其进行的所有优化而被很好地混淆了。
-
P.P.S. HTML
<input type="file" />的FileList是只读的,因此您也不能将拖放的文件移植到其中一个。 -
这篇文章的标题可以改吗?我刚刚发布了一个重复的问题,询问“Chrome”中的“拖放”,但它与这个问题不匹配,因为标题使用 Chromium(大多数人不使用)。
-
好的,我改了标题。
标签: javascript ajax html