2013-07-07 25 views
26

के रूप में छवि फ़ाइलों को भेज रहा है, मैंने इसे गुगल किया लेकिन जवाब नहीं मिला लेकिन यह एक आम समस्या होनी चाहिए। यह Node request (read image stream - pipe back to response) जैसा ही प्रश्न है, जिसे अनुत्तरित नहीं किया गया है।नोड एक्सप्रेस एपीआई प्रतिक्रिया

मैं एक छवि फ़ाइल को एक्सप्रेस .send() प्रतिक्रिया के रूप में कैसे भेजूं? मुझे छवियों को रीस्टफुल यूआरएल मैप करने की ज़रूरत है - लेकिन मैं बाइनरी फ़ाइल को दाएं हेडर के साथ कैसे भेजूं? जैसे,

<img src='/report/378334e22/e33423222' /> 

कॉल ...

app.get('/report/:chart_id/:user_id', function (req, res) { 
    //authenticate user_id, get chart_id obfuscated url 
    //send image binary with correct headers 
}); 
+1

आप छवि सर्वर साइड कैसे पुनः प्राप्त करते हैं? – 7zark7

+0

फ़ाइल पथ के बजाय request.get – metalaureate

उत्तर

41

वहाँ एक्सप्रेस में एक API है।

res.sendFile

app.get('/report/:chart_id/:user_id', function (req, res) { 
    // res.sendFile(filepath); 
}); 

http://expressjs.com/en/api.html#res.sendFile

+2

का उपयोग करके आप इसे स्ट्रीम से कर सकते हैं? उदाहरण के लिए यदि आपके पास एक चर है कि आप एक फ़ाइल संग्रहीत कर रहे थे ताकि आपको वास्तव में सर्वर पर फ़ाइल को सहेजने की आवश्यकता न हो? – BRogers

+3

@BRogers 'res' एक लिखने योग्य स्ट्रीम है, इसलिए यदि आपके पास 'बफर' ऑब्जेक्ट या 'स्ट्रिंग' है तो आप क्लाइंट को भेजने के लिए' .write' विधि का उपयोग कर सकते हैं। –

+0

धन्यवाद, मैं कोशिश कर रहा हूं। मेरे पास एक CSV बफर है कि मैं क्लाइंट को वापस भेजना चाहता हूं और यह एक डाउनलोड की गई फ़ाइल के रूप में दिखाता है। मुझे उस के साथ खिलौना करना होगा। फ़ाइल बहुत बड़ी नहीं है, इसलिए मैं इसे पूरा करने की उम्मीद कर रहा हूं। – BRogers

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