chrome使用dragstart event.dataTransfer拖出多个文件

时间:2014-06-20 14:25:16

标签: javascript html5 google-chrome drag-and-drop blob

我目前有一个应用程序,可以在javascript中生成一些内容,将其转换为blob,然后允许用户将其拖到桌面上以将其另存为文件。关键线看起来像这样:

 event.dataTransfer.setData("DownloadURL",
                  'application/octet-stream:' + desiredFilename + ':' + blobURL);

这在Chrome中运行良好,但理想情况下我希望用户能够同时拖出多个文件。

  • 我看到Firefox有一个mozSetDataAt方法,我想这是他们公开此功能的方法,但我在Chrome中找不到任何相同内容。
  • 我尝试使用dataTransfer.items.add,它似乎对dataTransfer对象做了一些事情,但即使用于单个文件也不会产生工作拖动。
  • 我试过提供一个数组作为上面setData的第二个参数,它适用于一个项目,但不是更多。
  • 我尝试多次调用setData,看看每个调用是否添加了其他数据,但遗憾的是它只是覆盖了原始数据。
  • 我想知道是否有某种方法可以指定具有某种多部分类型的单个downloadurl,这将允许我指定多个blob及其所需的文件名。请参阅this unanswered SO question或多或少的问题。
  • 我也想知道是否有某种方法来创建FileListDataTransferItemList并以某种方式将它们分配给事件,但似乎没有任何方法可以从中创建这些类的实例划伤。

我真的只关心Chrome,虽然FF和IE可能很有意思。

谢谢!

0 个答案:

没有答案