2017-09-01 71 views
-1

如何以編程方式實現將本地文件從Web應用程序拖動到桌面應用程序的方式?有沒有辦法將文件從Web應用程序拖到桌面應用程序?

+0

看看重複的,也許你可以像顯示一個鏈接到文件等的圖像,然後使用OS級別拖放拖放以獲取應用程序的鏈接,然後在應用程序中下載該文件。當您在桌面上放置鏈接時,就像在窗口上一樣,您會看到一個快捷方式。看看重複。 – Wernerson

+0

這是一個有用的鏈接,應該有幫助:https://www.html5rocks.com/en/tutorials/casestudies/box_dnd_download/ – GoodJuJu

回答

0

不,您當然可以選擇其他方式,但與本地安裝的應用程序的交互需要您首先訪問(下載)遠程文件。

+0

這不是100%真實的,如果你拖動一個鏈接到一個文件(可以是顯示爲文件圖像),您可以將「圖像」拖動到桌面應用程序,然後自行下載文件。 – Wernerson

+0

我知道你在說什麼,但現實情況是,這個功能主要限於圖像,因此將是一個黑客攻擊,所以命名一個文件my_excel_workbook.png會工作,但你真的想這樣做? – TheTechy

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!">

0

檢查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>

相關問題