मेरी समस्या यह है: मैंने किसी की वेब सेवा पर कॉल किया है। मैं फ़ाइल का नाम, एक्सटेंशन और "बाइट्स" वापस प्राप्त करता हूं। बाइट्स वास्तव में एक सरणी के रूप में आते हैं और स्थिति 0 पर "बाइट्स [0]" निम्न स्ट्रिंग है:
JVBERi0xLjYKJeLjz9MKMSAwIG9iago8PC9EZWNvZGVQYXJtczw8L0sgLTEvQ29sdW1ucyAyNTUwL1Jvd3MgMzMwMD4+L1R5cGUvWE9iamVjdC9CaXRzUGVyQ29tcG9uZW50IDEvU3VidHlwZS9JbWFnZS9XaWR0aCAyNTUwL0NvbG9yU3BhY2UvRGV2aWNlR3JheS9GaWx0ZXIvQ0NJVFRGYXhEZWNvZGUvTGVuZ3RoIDI4Mzc0L0hlaWdodCAzMzAwPj5zdHJlYW0K////////y2IZ+M8+zOPM/HzLhzkT1NAjCCoEY0CMJNAjCR4c8HigRhBAi1iZ0eGth61tHhraTFbraRaYgQ8zMFyGyGM8ZQZDI8MjMI8M6enp9W6enp+sadIMIIEYwy/ggU0wwgwjWzSBUmwWOt/rY63fraTVNu6C7R7pN6+v///20v6I70vdBaPjptK8HUQfX9/17D/TMet+l06T//0v3/S9v+r98V0nH///7Ff+Ed3/v16X9XX/S/KP0vSb//W88ksdW18lzBEJVpPXT0k9b71///...
ऊपर दिए गए स्ट्रिंग उदाहरण को पठनीयता के लिए काट दिया गया है। मैं उस स्ट्रिंग को कैसे ले सकता हूं और इसे एक पठनीय फ़ाइल के रूप में सहेज सकता हूं? इस मामले में यह एक पीडीएफ है।
let pdfBytes = '{String shown above in example}'
2 जवाब
प्राप्त बफ़र को सहेजने के लिए आप Node.js फ़ाइल सिस्टम मॉड्यूल का उपयोग कर सकते हैं।
मान लें कि आपके डेटा का एन्कोडिंग बेस 64 है:
const fs = require('fs');
let pdfBytes = 'JVBERi0xLjYKJeLjz9...'
let writeStream = fs.createWriteStream('filename.pdf');
writeStream.write(pdfBytes, 'base64');
writeStream.on('finish', () => {
console.log('saved');
});
writeStream.end();
मैं फ़ाइल बनाने और सहेजने के लिए यहाँ fs फ़ाइल सिस्टम का उपयोग कर रहा हूँ। कुछ भी गलत होने की स्थिति में मैं बहुत सारे ट्राई कैच का उपयोग करता हूं। यह उदाहरण दिखाता है कि आप डेटा को उस फ़ंक्शन में कैसे पास कर सकते हैं जो आपके लिए फ़ाइल बना सके।
const util = require('util');
const fs = require('fs');
const fsOpen = util.promisify(fs.open);
const fsWriteFile = util.promisify(fs.writeFile);
const fsClose = util.promisify(fs.close);
function saveNewFile(path, data) {
return new Promise((async (resolve, reject) => {
let fileToCreate;
// Open the file for writing
try {
fileToCreate = await fsOpen(path, 'wx');
} catch (err) {
reject('Could not create new file, it may already exist');
return;
}
// Write the new data to the file
try {
await fsWriteFile(fileToCreate, data);
} catch (err) {
reject('Error writing to new file');
return;
}
// Close the file
try {
await fsClose(fileToCreate);
} catch (err) {
reject('Error closing new file');
return;
}
resolve('File created');
}));
};
// Data we want to use to create the file.
let pdfBytes = 'JVBERi0xLjYKJeLj...'
saveNewFile('./filename.pdf', pdfBytes);
संबंधित सवाल
नए सवाल
node.js
Node.js एक घटना-आधारित, गैर-अवरोधक, अतुल्यकालिक I / O रनटाइम है जो Google के V8 जावास्क्रिप्ट इंजन और libuv लाइब्रेरी का उपयोग करता है। इसका उपयोग उन अनुप्रयोगों को विकसित करने के लिए किया जाता है जो क्लाइंट पर और साथ ही सर्वर साइड पर जावास्क्रिप्ट को चलाने की क्षमता का भारी उपयोग करते हैं और इसलिए कोड के पुन: प्रयोज्य और संदर्भ स्विचिंग की कमी से लाभान्वित होते हैं।