有没有办法将文件从Web应用程序拖到桌面应用程序?

时间:2017-09-01 09:45:25

标签: javascript google-chrome web browser

如何以编程方式实现将本地文件从Web应用程序拖到桌面应用程序的方法?

3 个答案:

答案 0 :(得分:1)

检查this link。它更详细一点。我已经创建了第一个版本的评论。它将链接作为文本删除(在MS Word中测试)。您的应用程序现在需要支持这种丢弃。

<div 
  draggable="true" 
  ondragstart="event.dataTransfer.setData('text/plain',
  'http://che.org.il/wp-content/uploads/2016/12/pdf-sample.pdf')">
  <img src="http://via.placeholder.com/300?text=Placeholder.com+rocks!" draggable="false" />
</div>

您甚至可以将MIME类型更改为文件或类似文件,并且可能必须调整第二个参数,我还没有对此进行测试,但这取决于您的桌面应用程序对它做出反应。 This link可以帮助您,但我认为您必须先下载该文件。如果是这样,我会将MIME类型更改为application/octet-stream(对于一般文件),您想要的特定MIME类型,甚至是您自己的(这种方式只有您的应用程序知道它)。您仍然可以删除文本/链接,然后只需在应用程序中下载该文件。

尝试使用MIME类型等:

<div 
  draggable="true" 
  ondragstart="event.dataTransfer.setData('application/octet-stream',
  'http://link.to/your/file.txt')">
  <img src="http://repository.wustl.edu/assets/default-c6018ff301250c55bcc663293e1816c7daece4159cbc93fc03d9b35dbc3db30d.png" draggable="false" />
</div>

答案 1 :(得分:0)

没有。当然,您可以采用其他方式,但与本地安装的应用程序的交互需要您首先访问(下载)远程文件。

答案 2 :(得分:0)

这是一种开始下载屏幕上拖动的任何图像的简单方法。根本不确定这是否是你想要的,但它只是支持Wernerson所评论的内容。

document.addEventListener('drag', function(e) {
  if (e.target.tagName === 'IMG') {
     var src = e.target.src;
     var a = document.createElement('a');
     a.setAttribute('download', '');
     a.setAttribute('href', src);
     a.click();
  }
})
<img src="http://via.placeholder.com/300?text=Placeholder.com+rocks!">

相关问题