2011-03-23 1 views
5

파일을 저장하고 끌어서 놓기를 사용하여 업로드하는 앱이 있습니다. "다운로드"를 클릭하지 않고 바탕 화면으로 파일을 다운로드하기 위해 끌어다 놓을 수있는 방법이 있습니까? 기본적으로 드래그 + 드롭 다운의 반대입니다.브라우저에서 바탕 화면으로 파일을 드래그 앤 드롭하여 다운로드 할 수 있습니까?

+0

아마도 브라우저 확장을 작성해야한다고 생각합니다. –

+0

사실 크롬을 사용하는 것이 가능합니다. http://www.thecssninja.com/javascript/gmail-dragout – raymi

답변

1

아니요, 브라우저가 허용하지 않는 경우 다운로드 경로를 설정할 수 있어야합니다. 플러그인에서는 가능하지만 JS에서는 스트레이트가 아닙니다.

+0

질문을 기다리십시오.이를 수행하기 위해 브라우저 플러그인을 제안 해주십시오. 즉, 모든 브라우저에 플러그인을 만들어야한다는 의미입니다. 또는 일부 유형의 데스크탑 통합? –

+0

솔직히 말해서, 나는 시도하지 말 것입니다. 그것은 표준이 아닌 행동이며 아무도 지시를하지 않으면 시도하지 않을 것입니다. 예, 모든 브라우저마다 다른 플러그인이 필요합니다. –

+0

거짓 - 이제는 가능합니다. Chrome에 방법이 있습니다 (아래 답변 참조). Firefox에는 확장 프로그램이 필요합니다 (http://superuser.com/questions/758797/downloading-files-with-dragandanddrop) – Abacus

2

Google 크롬에서만 지원됩니다.
http://www.html5rocks.com/en/tutorials/dnd/basics/#toc-desktop-dnd-out 예를 들어 Gmail에 구현되어 있습니다.

다른 브라우저에서는이 동작을 지원하지 않습니다.

+0

http://www.thecssninja.com/javascript/gmail-dragout의 데모는 Linux의 경우 Firefox 31.4 이상에서 작동합니다. . –

+0

자습서에서 읽고 정렬해야 할 것이 많습니다. 여기에이 코드가 작동하는 방법을 보여줄 수있는 최소한의 코드가 있습니다 : Drag Me Abacus

0

html5rocks 및 cssninja는 괜찮습니다. 그러나 빠른 답을 얻으려면 과도기라고 생각합니다. 다음은 파일 다운로드를 포함하여 무언가의 드래그 이벤트를 사용하는 간단한 예입니다.

<style> 
div { background-color: #eee; border: 1px solid black; padding: 5px; float: left; clear: both; } 
</style> 
<div id="uiLinkText"   draggable="true">Drag <b>Text</b> to a text editor </div> 
<div id="uiLinkHyperlink"  draggable="true">Drag <b>Hyperlink</b> to address bar </div> 
<div id="uiLinkUrlDownload" draggable="true">Drag <b>Url Download</b> to file system </div> 
<div id="uiLinkStaticDownload" draggable="true">Drag <b>Static Download</b> to file system </div> 
<script> 
document.getElementById('uiLinkText').ondragstart = function(event){ 
    // plain text, for dropping into text editor 
    event.dataTransfer.setData('text/plain', 'Go to http://stackoverflow.com/questions/5411481/ to read about this.'); 
} 
document.getElementById('uiLinkHyperlink').ondragstart = function(event){ 
    // URL, for dropping into the browser's address bar 
    event.dataTransfer.setData('text/uri-list', 'http://stackoverflow.com/questions/5411481/'); 
} 
document.getElementById('uiLinkUrlDownload').ondragstart = function(event){ 
    // file download contents, for dropping into a file system 
    event.dataTransfer.setData('DownloadURL', 'text/plain:SourceQuestion.html:http://stackoverflow.com/questions/5411481/') 
} 
document.getElementById('uiLinkStaticDownload').ondragstart = function(event){ 
    var textToWrite = 'file contents here'; 
    var textFileAsBlob = new Blob([textToWrite], { type: 'text/xml' }); 
    var url = window.URL.createObjectURL(textFileAsBlob); 
    // file download contents, for dropping into a file system 
    event.dataTransfer.setData('DownloadURL', 'text/plain:Static.txt:' + url) 
} 
</script> 

경고 :이, 나는 LINKE에 대한 jsfiddle에 퍼팅 시도 할 때 "정적 다운로드"작동하지 않았다 (윈도우 7) 로컬 크롬에 나를 위해 잘 작동하고 "URL을 다운로드"동안 Chrome이 다운되었습니다.

대부분의 드래그 앤 드롭과 마찬가지로 MSIE 9에서는 작동하지 않지만 10+ 또는 Firefox를 사용하지 않았습니다.

관련 문제