MySQL BLOB в PDF в nodejs - PullRequest
       15

MySQL BLOB в PDF в nodejs

0 голосов
/ 08 декабря 2018

У меня есть несколько записей с BLOB, я публикую скриншот одной записи ниже: enter image description here

Мне нужно преобразовать его обратно в PDF и сохранить в папке.вот что я пробовал до сих пор, но ничего не получалось:

просто сохранение большого двоичного объекта в файл (не удалось)

const mysql = require('mysql');
const fs = require('fs');

const con = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "SQL1234",
  database: "mydb"
});

con.connect(function(err) {
  if (err) throw err;

  const sql = 'SELECT * FROM documents WHERE idnum = 29347';

  con.query(sql, function (err, result, fields) {
    if (err) throw err;
    const row = result[0];
    const pdf = row.pdf;
    fs.writeFileSync('some.pdf', pdf);

  });

});

, затем преобразование его в строку base64 и использование пакета base64topdf

const base64 = require('base64topdf');
var bufferBase64 = pdf.toString('base64');
let decodedBase64 = base64.base64Decode(bufferBase64, 'finalpdf.pdf');

еще одна неудачная попытка:

    let buffer = Buffer.from(row.pdf);
    fs.writeFile('file.pdf', buffer, 'binary', function(err) {
        if(err) {
            console.log(err);
        }else{
            console.log('file saved');
            fs.readFile('test.pdf', (err, data) => {
                res.contentType("application/pdf");
                res.send(data);//
            });
        }
    });

с использованием blob-to-buffer :

const toBuffer = require('blob-to-buffer');
 var blob = b64toBlob(row.pdf, 'application/pdf');

 toBuffer(blob, function (err, buffer) {
   if (err) throw err

   buffer[0] // => 1
   buffer.readUInt8(1) // => 2
   let decodedBase64 = base64.base64Decode(buffer, 'myfile2.pdf');
 });

я знаю, что я что-то делаюВот глупо, вот и я опубликовал скриншот блоба, чтобы вы знали, какие у меня есть данные.любая помощь будет оценена.

...