2012-11-02 30 views
6

हम वर्तमान में उपयोगकर्ताओं के लिए डाउनलोड विकल्प दे रही है एमपी 3 फ़ाइलें डाउनलोड करने के लिए काम कर रहे हैं के भीतर clientside स्क्रिप्ट का उपयोग कर। हम ऐसे एप्लिकेशन को विकसित कर रहे हैं जो स्थानीय सिस्टम में पूरी तरह निष्पादित हो कि कोई सर्वर आवश्यक नहीं है।फ़ाइल डाउनलोड विकल्प क्लाइंट सिस्टम

लेकिन विकल्प ब्राउज़रों के अधिकांश में काम नहीं कर रहा एमपी 3 फ़ाइलों को डाउनलोड। अधिकांश ब्राउज़रों में इनबिल्ट मीडिया प्लेयर में इसे खोला जाता है।

हमने इसके लिए समाधान की जांच की है क्योंकि हमें सर्वर पक्ष में शीर्षलेख का उपयोग करके 'सामग्री-स्वभाव' सेट करने या इसे डाउनलोड करने के लिए PHP या एएसपी स्क्रिप्ट का उपयोग करने जैसे उत्तर मिलते हैं।

मैं भी jQuery filedownload.js प्लगइन जाँच कर ली है। जिसमें सामग्री-स्वभाव और सेट-कुकी सेट करने जैसे अनुभाग भी थे।

तो मैं जानना चाहता हूं कि फ़ाइल डाउनलोड लिंक (एमपी 3 के लिए) बनाना संभव है * जावास्क्रिप्ट या jQuery जैसी क्लाइंट साइड स्क्रिप्ट का उपयोग करके सभी ब्राउज़रों के लिए संगत।

महत्वपूर्ण नोट:

असल प्रक्रिया किसी सर्वर से लेकिन क्लाइंट सिस्टम से ही फाइल को डाउनलोड नहीं है।

यह एमपी 3 फ़ाइल क्लाइंट सिस्टम में एक स्थान (निर्देशिका) से दूसरे स्थान पर कॉपी की जानी चाहिए।

+0

बस कुछ निश्चित करने के लिए, आप सर्वर के शीर्षलेखों को बदलने में सक्षम नहीं हैं जहां एमपी 3 आ गया है? – Dcullen

उत्तर

2

यह समाधान

यह एक ब्लॉब में और फिर एमपी 3 डाउनलोड करेगा XHR2 के ब्राउज़र समर्थन (http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html) की आवश्यकता है एक यूआरएल बनाएगा जिससे आप ब्लॉब तक पहुंच सकें। इस प्रक्रिया के दौरान आप मिमटाइप को जो कुछ भी चाहिए उसे ओवरराइड कर सकते हैं।

window.URL = window.URL || window.webkitURL; 

    var xhr = new XMLHttpRequest(); 
    xhr.open('GET', 'http://robtowns.com/music/blind_willie.mp3', true); 
    xhr.responseType = 'blob'; 
    xhr.overrideMimeType('application/octet-stream'); 
    xhr.onload = function(e) { 
     if (this.status == 200) { 
      var blob = this.response; 
      $('#link').html('<a href="'+window.URL.createObjectURL(blob)+'">Download</a>'); 
     } 
    }; 

    xhr.send(); 

जेएसफ़ील्ड उदाहरण के लिए आपको क्रॉस डोमेन अनुरोध की अनुमति देने के लिए अपने ब्राउज़र में वेब-सुरक्षा बंद करनी होगी। http://jsfiddle.net/D2DzR/3/

+0

प्रतिक्रिया Dcullen के लिए धन्यवाद। हम एक्सएचआर 2 विधि के साथ जांच कर रहे हैं। लेकिन यह आईई ब्राउज़र का समर्थन नहीं कर रहा है। हमारे पास क्रोम और फ़ायरफ़ॉक्स के साथ काम करने के अन्य तरीके हैं। हमें आईई ब्राउज़र के लिए एक विधि की आवश्यकता है। – Ranjithsun