下载图像并使用multipart / form-data将其发送到API

问题描述 投票:2回答:2

我正在尝试使用multipart/form-data将图像从互联网发送到API。

我可以通过使用request.pipe(fs.createWriteStream)将图像保存在临时文件夹中并使用fs.createReadStream上传来完成此操作

但是如何在不将其保存在临时文件夹中的情况下执行此操作?

我尝试创建一个新的request并将身体作为new Buffer发送,但没有奏效。

额外的信息:

我正在实现Telegram Bot API方法sendPhoto:https://core.telegram.org/bots/api#sendphoto

我正在使用请求模块进行集成:https://github.com/request/request

谢谢。

node.js image request
2个回答
2
投票

使用请求节点库,您可以在can get binary content from the resource中设置encoding: null。因此二进制内容存储在一个对象(Buffer)中。

要使用requestSettings发送照片,您将执行以下操作:

node-telegram-bot

0
投票

我有同样的问题,我使用请求承诺库解决了下一个代码

var TelegramBot = require('node-telegram-bot-api');
var bot = new TelegramBot(token);

var requestSettings = {
    url: 'http://httpbin.org/image',
    encoding: null
};

request(requestSettings, function (error, response, buffer) {
    if (!error && response.statusCode == 200) {
        bot.sendPhoto(chatId, buffer)
    }
});
© www.soinside.com 2019 - 2024. All rights reserved.