nodejs base64 для преобразования BLOB-объектов - PullRequest
0 голосов
/ 31 мая 2018

Снимок экрана веб-камеры захвата Iam в реагиат (веб-камера реагирования).Снимок экрана представлен в виде строки в кодировке base64.Я отправляю строку base 64 в nodejs и хочу преобразовать строку base64 в файл .jpeg, чтобы сохранить ее в хранилище BLOB-объектов Azure.Есть ли способ конвертировать строку base64 в файл .jpeg.

Ответы [ 4 ]

0 голосов
/ 06 июня 2018

Я использовал это, и это сработало.ниже приведен код на стороне сервера (NodeJS)

var contentType = 'image/jpeg';
    let base64String=req.body.img;
    let base64Image = base64String.split(';base64,').pop();
    let date=Date.now();
    fs.writeFile(`./uploads/${date}.jpeg`, base64Image, {encoding: 'base64'}, function(err) {
    console.log('File created');
    sourceFilePath= path.resolve(`./uploads/${date}.jpeg`);
   blobName=path.basename(sourceFilePath, path.extname(sourceFilePath));
   //console.log(sourceFilePath);
    blobService.createBlockBlobFromLocalFile(containerName, blobName, sourceFilePath, err => {
            if (err) {
                console.log(err);
            } 
            else {
                //resolve({ message: `Upload of '${blobName}' complete` });
                console.log("UPLOADED")
            }
        });
0 голосов
/ 31 мая 2018

Попробуйте:

  1. на основе blob

    (async function() {
      const b = require('based-blob');
    
      const base64String = 'some base64 data...';
    
      const blob = b.toBlob(base64String);
      const b64s = await b.toBase64(blob);
    
      console.log(b64s == base64String); // true
    })();
    
0 голосов
/ 31 мая 2018

Привет, я использую эту функцию

public b64toBlob = (b64Data: string = '', sliceSize?: number) => {
            sliceSize = sliceSize || 512;
            if ( b64Data !== null) {
                let block = b64Data.split(';');
                let dataType = block[0].split(':')[1];
                let realData = block[1].split(',')[1];
                let filename = this.makeid() + '.' + dataType.split('/')[1];
                let byteCharacters = atob(realData);
                let byteArrays = [];
                for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {
                    let slice = byteCharacters.slice(offset, offset + sliceSize);

                    let byteNumbers = new Array(slice.length);
                    for (let i = 0; i < slice.length; i++) {
                        byteNumbers[i] = slice.charCodeAt(i);
                    }
                    let byteArray = new Uint8Array(byteNumbers);
                    byteArrays.push(byteArray);
                }
                let blob = new Blob(byteArrays, {type: dataType});
                return blob ;
            } else {
                return '';
            }
        }
0 голосов
/ 31 мая 2018

Вы можете преобразовать строку Base64 в буфер и затем попытаться сохранить ее в Azure.

var base64String = "....."; // your base64 string
var bufferValue = Buffer.from(base64String,"base64");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...