में दूषित डाउनलोड मैं FileSaver.js का उपयोग कर फ़ाइल डाउनलोड करने का प्रयास कर रहा हूं, लेकिन जब भी मैं डाउनलोड बटन दबाता हूं तो मुझे दूषित फ़ाइल मिलती है।AngularJs एप
ऐप को एक PHP आरईएसटी सेवा द्वारा समर्थित किया गया है, और कमांड लाइन से curl का उपयोग करके पुष्टि करता है कि REST ठीक काम कर रहा है।
// Let str be the data received from $http promise
// This code is run in a "then" callback
var arr= new Uint8Array(str.length);
for(var i=0; i<str.length; i++) {
arr[b]=str.charCodeAt(i);
};
var blob = new Blob([arr], {type: 'application/octet-stream'});
saveAs(blob, "AFileName");
यह सिर्फ फ़ाइल भ्रष्ट:
यहाँ छद्म कोड है कि मैं डाउनलोड करने के लिए उपयोग करने के अंतिम संस्करण है।
मैंने Uint8Array
को लागू किए बिना भी कोशिश की, और str
सीधे Blob
पर दे दिया। जैसा कि आपने अनुमान लगाया था, यह भी असफल रहा।
मैं सर्वर और क्लाइंट लिख रहा हूं, इसलिए मैं उनमें कुछ भी बदल सकता हूं। लेकिन बात यह है कि मैं डाउनलोड क्लाइंट-साइड को संभालना चाहता हूं, और मैं इसे डाउनलोड करने के लिए उपयोगकर्ताओं को फ़ाइल यूआरएल पर रीडायरेक्ट नहीं कर सकता, क्योंकि आरईएसटी को प्रमाणीकरण की आवश्यकता है और टोकन केवल कोणीय ऐप के भीतर रहता है। प्रमाणीकरण के बिना फ़ाइल डाउनलोड को संभालने के लिए सर्वर को बदलने के लिए यह एक अच्छा विकल्प नहीं होगा।
आरईएसटी में /files/:id
जैसे यूआरएल हैं, जब एक्सेस किया जाता है, तो नियमित रूप से HTTP फ़ाइल डाउनलोड के रूप में फ़ाइल सामग्री प्रदान करता है (ऊपर बताए गए कर्ल के साथ परीक्षण किया जाता है)। $http
समस्या हो सकती है? किसी भी तरह से प्राप्त डेटा पर कुछ प्रकार के एन्कोडिंग या कुछ मान्यताओं को मजबूर करना। मुझे वैसे भी कोणीय में ज्यादा अनुभव नहीं है।
@ArtjomB नियमों के खिलाफ "धन्यवाद" कह रहा है? – vfsoraki
आप यह कह सकते हैं: ['हाय', 'धन्यवाद,' टैगलाइन, और नमस्कार पदों से हटा दिया जाना चाहिए?] (Http://meta.stackexchange.com/q/2950/266187), लेकिन मत जाओ और पुरानी पोस्ट से इन चीजों को हटा दें। इससे उन्हें अवांछित ध्यान मिल सकता है। साथ ही, जब आप ऐसा करने के बारे में जाते हैं, तो आपको पोस्ट में सबकुछ ठीक करना चाहिए। इस संपादन को करने का कारण यह था क्योंकि किसी अन्य उपयोगकर्ता ने आपके प्रश्न के लिए PHP टैग का सुझाव दिया जो गलत लगता था क्योंकि आपने कहा है कि आपने उस भाग का परीक्षण किया है और यह काम करता है। मैंने फिर अपने संपादन के साथ अपने संपादन को खारिज कर दिया। –