मेरी समस्या यह है: मैंने किसी की वेब सेवा पर कॉल किया है। मैं फ़ाइल का नाम, एक्सटेंशन और "बाइट्स" वापस प्राप्त करता हूं। बाइट्स वास्तव में एक सरणी के रूप में आते हैं और स्थिति 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}'
0
Meisterunner 1 मार्च 2019, 18:10

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(); 
2
mexo 1 मार्च 2019, 23:45

मैं फ़ाइल बनाने और सहेजने के लिए यहाँ 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);
0
amcnutt 3 मार्च 2019, 04:04