IwanQ
@IwanQ
Плохие времена часто дают прекрасные возможности

Как преобразовать base64 в buffer?

Доброго времени суток. Столкнулся со следующей проблемой.

Нужно получить картинку в base64, далее преобразовать ее в буфер для последующего получения информации с помощью пакета file-type.

При получении base64 картинки я преобразую ее в буфер следующим образом:
Buffer.from('base64here');

Получившиеся значение передаю пакету file-type
await FileType.fromBuffer('bufferhere');

Но получаю undefined.

Подскажите пожалуйста, что я делаю не правильно?
  • Вопрос задан
  • 54 просмотра
Пригласить эксперта
Ответы на вопрос 2
WblCHA
@WblCHA
https://nodejs.org/api/buffer.html#buffer_static_m...
encoding <string> The encoding of string. Default: 'utf8'.

Он твою строку читает как утф8, а не бейз64, поменяй.

fromBuffer('bufferhere');
Почему ты используешь строку вместо буфера?
Ответ написан
IwanQ
@IwanQ Автор вопроса
Плохие времена часто дают прекрасные возможности
Решение:

const decodeBase64Img = (base64String) => {
    const matches = base64String.match(/^data:([A-Za-z-+/]+);base64,(.+)$/),
      obj = {};

    if (matches.length !== 3) {
      return new Error('Invalid input string');
    }

    const [, extension, base64] = matches;

    obj.type = extension;
    obj.buffer = Buffer.from(base64, 'base64');

    return obj;
    // Based on: https://stackoverflow.com/Questions/20267939/Nodejs-Write-Base64-Image-File
  };


await FileType.fromBuffer(decodeBase64Img('base64').buffer);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы