我正在尝试下载文件,同时将其从浏览器拖到Windows应用程序中,例如在Outlook,打印机队列等中。文件正按预期方式放置到桌面或任何其他文件浏览器位置,但是当我尝试将其放置在Windows应用程序(打印机队列),其无法正常工作。 我使用过dragstart事件和jQuery ajax同步调用。任何帮助或指针,将不胜感激。唯一将使用的浏览器是Chrome。
在这篇文章的底部,您可以看到我正在尝试实现的目标: https://www.html5rocks.com/en/tutorials/casestudies/box_dnd_download/
下面是代码段:
HTML:
<a id="{{docs[0].documentID}}" draggable="true" ondragstart="angular.element(this).scope().dragOut(this.id,event)">{{docs[0].fileName}}</a>
JS:
$scope.dragOut = function(documentId,ev) {
$.ajax({
async: false,complete: function(response) {
var b64Data = response.responseJSON.getDocumentResponse.content;
var fileName = response.responseJSON.getDocumentResponse.fileName;
var contentType = response.responseJSON.getDocumentresponse.contenttype;
ev.dataTransfer.setData("DownloadURL",contentType+":"+fileName+":"+"data:"+contentType+";base64,"+b64Data);
//ev.dataTransfer.setData("DownloadURL","text/plain:hello.txt:data:text/plain;base64,SGVsbG8sIFdvcmxkIQ%3D%3D");
},error: function(xhr) {
if (xhr.status == 404) {
xhr.abort();
}
},type: 'GET',url: 'some url',data: '',headers: {
withCredentials: true,'accept': 'application/json','Content-Type': 'application/json',}
});
};
例如,当我尝试将其放入打印机队列时,我得到了加号,但释放后什么也没发生。因此,已经拖到桌面上了,我想要做的是直接拖到Windows应用程序上。