Всем привет! Я новичок в Node.Js. Как я могу загрузить фото с помощью метода /sendphoto? На сервере я принимаю изображение из браузера клиента с помощью "express-fileupload". Как я могу отправить фото не сохраняя его локально?
Вот пример кода.
function bufferToStream(myBuffer) {
let stream = new Duplex();
stream.push(myBuffer);
stream.push(null);
return stream;
}
router.post('/', (req, res) => {
const fileBuffer = req.files.file.data;
const mimetype = req.files.file.mimetype;
// Формирую тело запроса
let body = boundaryMiddle+'Content-Disposition: form-data; name="chat_id"'+'\r\n\r\n'+ chat_id+'\r\n'+boundaryMiddle+'Content-Disposition: form-data; name="photo"; filename="blob"'+'\r\n'+'Content-Type: '+mimetype+'\r\n\r\n'+ bufferToStream(fileBuffer) +'\r\n'+boundaryLast;
var options = {
host: 'api.telegram.org',
path: `/bot${token}/sendPhoto`,
port: '443',
method: 'POST',
headers:{
'Content-Type': `multipart/form-data; boundary=${boundary}`
}
};
callback = function (response) {
var str = ''
response.on('data', function (chunk) {
str += chunk;
});
response.on('end', function () {
console.log(str);
});
}
var request = https.request(options, callback);
request.end(body);
В ответ на запрос получаю: {"ok":false,"error_code":400,"description":"Bad Request: IMAGE_PROCESS_FAILED"}.
На самом деле я думаю ошибка из-за того, что я не указываю заголовок Content-Length. Но я не знаю как указать длину потока?
Подскажите в каком направлении копать?