У меня есть несколько записей с BLOB, я публикую скриншот одной записи ниже:
Мне нужно преобразовать его обратно в 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');
});
я знаю, что я что-то делаюВот глупо, вот и я опубликовал скриншот блоба, чтобы вы знали, какие у меня есть данные.любая помощь будет оценена.