Как проанализировать URL-адрес данных в Node?
У меня есть URL-адрес данных:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...
Какой самый простой способ получить это как двоичные данные (например, Buffer
), чтобы я мог записать его в файл?
Ответы
Ответ 1
Поместите данные в буфер с использованием кодировки base64, затем напишите это в файл:
var fs = require('fs');
var string = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==";
var regex = /^data:.+\/(.+);base64,(.*)$/;
var matches = string.match(regex);
var ext = matches[1];
var data = matches[2];
var buffer = new Buffer(data, 'base64');
fs.writeFileSync('data.' + ext, buffer);
Ответ 2
Попробуйте это
var dataUrl = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==";
var buffer = new Buffer(dataUrl.split(",")[1], 'base64');
Ответ 3
Я также встречал такие вопросы (разбор и проверка URL данных) недавно и нашел следующее обходное решение: https://gist.github.com/bgrins/6194623
Я создал 2 пакета, чтобы упростить работу с URL-адресами данных. Вот они:
https://github.com/killmenot/valid-data-url
https://github.com/killmenot/parse-data-url
Отъезд примеры