节点文件上传以 502 Gateway Error 结束
Node file upload ends with 502 Gateway Error
我正在尝试使用 request
模块将文件上传到 Telegram
's Bot API。但是,我最终遇到了 502 网关错误。这是我的代码:
var request = require("request");
var fs = require("fs");
fs.readFile("image.png",function(err,data){
var formdata = {};
formdata.chat_id = <chatid>;
formdata.photo = data;
if(err)
console.log(err);
request({
url : "https://api.telegram.org/bot<token>/sendPhoto",
method : "POST",
headers : {
"Content-Type" : "multipart/form-data"
},
formData : formdata
},function(err,res,body){
if(err)
console.log(err)
console.log(body);
})
});
这是上传文件的正确方法还是我哪里出错了?
我建议,你最好使用请求对象的form字段,这样你就可以使用createReadStream函数发送文件fs module.For 示例:
var r = request.post({
url: url
},someHandler);
var form = r.form();
form.append('file',fs.createReadStream(filePath));
正确使用请阅读:
https://nodejs.org/api/fs.html#fs_fs_createreadstream_path_options
https://github.com/request/request#forms
我正在尝试使用 request
模块将文件上传到 Telegram
's Bot API。但是,我最终遇到了 502 网关错误。这是我的代码:
var request = require("request");
var fs = require("fs");
fs.readFile("image.png",function(err,data){
var formdata = {};
formdata.chat_id = <chatid>;
formdata.photo = data;
if(err)
console.log(err);
request({
url : "https://api.telegram.org/bot<token>/sendPhoto",
method : "POST",
headers : {
"Content-Type" : "multipart/form-data"
},
formData : formdata
},function(err,res,body){
if(err)
console.log(err)
console.log(body);
})
});
这是上传文件的正确方法还是我哪里出错了?
我建议,你最好使用请求对象的form字段,这样你就可以使用createReadStream函数发送文件fs module.For 示例:
var r = request.post({
url: url
},someHandler);
var form = r.form();
form.append('file',fs.createReadStream(filePath));
正确使用请阅读:
https://nodejs.org/api/fs.html#fs_fs_createreadstream_path_options https://github.com/request/request#forms