获取拖动到浏览器窗口的桌面文件的完整路径的Safari方法

时间:2015-05-19 15:13:30

标签: javascript sandbox filepath

其他类似问题询问<input type="file" />元素。这个问题是关于<input type="text" />元素在不同浏览器中的不同行为。

对于图片故事创建Web应用程序,用户可以将图像从桌面拖动到浏览器窗口。在所有浏览器中,在所有平台上,JavaScript都可以将文件作为dataURL读取并显示图像。

如果Web应用程序可以将本地存储中的图像文件的完整路径与故事的其余部分一起存储,那将是很好的,这样可以在下次启动应用程序时重新创建完整的故事。另一种方法是将图像文件完整复制到本地存储,这将很快填满可用空间。另一种方法是将图像文件上传到服务器,然后再次下载,以便将其存储在浏览器的缓存中。

仅保存图像文件的路径效率最高。

我注意到至少可以在Safari上运行的解决方案。如果我像这样创建一个HTML输入元素......

<input type="text" placeholder="Drag files here">

...然后将文件拖到此输入元素,在Safari上,桌面文件的完整路径显示在输入元素中,并且可供JavaScript访问。

我测试的不同浏览器的结果不同:

  • Safari:使JavaScript可以访问完整的文件路径
  • Chrome和Opera:打开新页面以显示应用页面上删除的图片之一,除非使用JavaScript来阻止此操作
  • Firefox:什么都不做

我的问题:

  1. Safari的行为在任何方面都是安全威胁吗?
  2. 如果它不是安全威胁,是否可以为用户提供在其他浏览器上提供完整文件路径的可能性?
  3. 这里是jsFiddle

0 个答案:

没有答案