如何以编程方式实现将本地文件从Web应用程序拖到桌面应用程序的方法?
答案 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!">