2011-03-23 9 views
5

मेरे पास एक ऐप है जो फ़ाइलों को संग्रहीत करता है और उन्हें अपलोड करने के लिए ड्रैग + ड्रॉप का उपयोग करता है। क्या कोई तरीका है जिसे मैं "डाउनलोड" पर क्लिक करने के बजाय फ़ाइल को अपने डेस्कटॉप पर डाउनलोड करने के लिए खींच सकता हूं। असल में, ड्रैग + ड्रॉप अपलोड के विपरीत।क्या ब्राउजर से डेस्कटॉप पर फ़ाइल को ड्रैग करना संभव है, डाउनलोड डाउनलोड हो रहा है?

+0

यदि संभवतः मैं कल्पना करता हूं कि आपको ब्राउज़र एक्सटेंशन लिखना होगा। –

+0

दरअसल, क्रोम के साथ यह संभव है: http://www.thecssninja.com/javascript/gmail-dragout – raymi

उत्तर

1

नहीं, आपको डाउनलोड पथ सेट करने में सक्षम होना होगा, अगर कुछ और नहीं, जो ब्राउज़र आपको करने की अनुमति नहीं देता है। प्लगइन के साथ यह संभव है, लेकिन सीधे जेएस नहीं।

+0

प्रश्न का पालन करें - क्या आप इसे प्राप्त करने के लिए ब्राउज़र प्लगइन का सुझाव देंगे, जिसका अर्थ है कि मुझे प्रत्येक ब्राउज़र के लिए एक प्लगइन बनाना होगा या कुछ प्रकार के डेस्कटॉप एकीकरण? –

+0

मैं ईमानदार होने की कोशिश करने का सुझाव नहीं दूंगा। यह गैर-मानक व्यवहार है और कोई भी इसे तब तक नहीं करने जा रहा है जब तक कि आप उन्हें निर्देश न दें। हां, आपको प्रत्येक ब्राउज़र में एक अलग प्लगइन की आवश्यकता होगी। –

+0

झूठा - यह (अब) ऐसा करने के लिए संभव है। क्रोम में एक विधि है (नीचे उत्तर देखें) और ऐसा लगता है कि फ़ायरफ़ॉक्स को एक एक्सटेंशन की आवश्यकता है (http://superuser.com/questions/758797/downloading-files-with-drag-and-drop) – Abacus

2

यह केवल Google क्रोम में समर्थित है।
http://www.html5rocks.com/en/tutorials/dnd/basics/#toc-desktop-dnd-out उदाहरण के लिए इसे जीमेल में लागू किया गया है।

कोई भी अन्य ब्राउज़र इस व्यवहार का समर्थन नहीं करता है।

+0

http://www.thecssninja.com/javascript/gmail-dragout से डेमो कम से कम फ़ायरफ़ॉक्स 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 में), और "यूआरएल डाउनलोड" क्रैश Google क्रोम।

अधिकांश ड्रैग-एंड-ड्रॉप के साथ, यह एमएसआईई 9 के साथ काम नहीं करता है, मैंने 10+ या फ़ायरफ़ॉक्स की कोशिश नहीं की है।

संबंधित मुद्दे

 संबंधित मुद्दे