2012-12-15 11 views
5

के बीच काम करने के लिए डाउनलोड प्राप्त करना मैं उस फ़ाइल का कच्चा डेटा प्राप्त कर सकता हूं जिसका मैं अनुरोध कर रहा हूं, लेकिन मैं ब्राउज़र को उपयोगकर्ता को फ़ाइल की सेवा नहीं कर सकता। क्या मुझे iframes का उपयोग करने की ज़रूरत है?angularjs और express.js

//Client code 
    download_file: function (path, callback) { 
     $http.post('/download/client_file', {path:path}). 
      success(function(data, status, headers, config) { 
       console.log(data); //this contains the raw data of the res.download 
            //from the server. 
      }); 
    } 

    //server code 
    res.download(file); // the path is proper 
+0

यदि आप HTTP प्राप्त करते हैं तो यह बेहतर काम करता है? (उर्फ अनुकरण करता है कि क्या होगा यदि उपयोगकर्ता फ़ाइल के लिंक पर क्लिक करना था) –

+0

इससे कोई फर्क नहीं पड़ता कि मैंने जीईटी या पोस्ट का उपयोग किया था, मेरे पास उचित फॉर्म डेटा ऑब्जेक्ट नहीं था। –

उत्तर

2

मैंने आइटम डाउनलोड करने के लिए अपनी सेवाओं फ़ाइल में नीचे दिए गए कोड का उपयोग किया और यह बहुत अच्छा काम किया। मैं इसे http://filamentgroup.com/lab/jquery_plugin_for_requesting_ajax_like_file_downloads/

$('<form action="'+ url +'" method="'+ ('post') +'">'+inputs+'</form>') 
       .appendTo('body').submit().remove(); 
+1

अगर मैं कर सकता तो मैं +2 करूँगा। बहुत बढ़िया समाधान। इस जवाब में स्पष्टीकरण देने की एक बात यह है कि 'इनपुट' इस तरह दिख सकता है: '<इनपुट प्रकार =" छुपा "नाम =" जेसन "मान =" {{mydata}} "/> 'जहां' mydata' से कुछ वस्तु है आपका '$ स्कोप '। मेरे ब्लॉग पर मेरा पूरा उदाहरण देखें: http://jessemon.blogspot.com/2013/11/download-data-from-angular-nggrid-as-csv.html – Jess

+0

मैं इसी समस्या में भाग रहा हूं - मेरे पास नियंत्रक है यह मेरे मुख्य app.js. पर $ http.put() कर रहा है। मुझे प्राप्त होने वाली डेटा प्रतिक्रिया भी मेरी .csv फ़ाइल का कच्चा आउटपुट है और उपरोक्त के साथ इसे बदलना मुझे संदर्भ संदर्भ नहीं दे रहा है: संदर्भ त्रुटि: $ परिभाषित नहीं है 'क्या मुझे कुछ याद आ रही है? – MonsterWimp757

+1

@ MonsterWimp757 यदि आप index.html पर कोणीय से पहले jquery लोड किया है तो आप $ चेक का उपयोग करना चाहते हैं – Eric

0

मिल से फ़ाइल प्रकार के आधार पर, और कैसे हेडर उस पर स्थापित कर रहे हैं, तो आप इसे बेहद आसान बस अपने जे एस से location.href="uriString"; कॉल करने के लिए मिल सकता है। फ़ाइल को उस विंडो का उपयोग करके तुरंत डाउनलोड करना चाहिए, जिसमें आप पहले से हैं। यदि यह JSON या टेक्स्ट डेटा है, तो आपको इनलाइन को प्रतिपादित करने के बजाए इसे डाउनलोड करने के लिए हेडर को ट्विक करने की आवश्यकता हो सकती है ... ("सामग्री-स्वभाव: अनुलग्नक", शायद। ..)