Javascript Node.js-使用Axios POST发送文件
我正在尝试使用Node JS上的Axios库向网站发送PDF。如果我使用CURL,该站点提供了一个非常有效的示例:Javascript Node.js-使用Axios POST发送文件,javascript,node.js,post,axios,Javascript,Node.js,Post,Axios,我正在尝试使用Node JS上的Axios库向网站发送PDF。如果我使用CURL,该站点提供了一个非常有效的示例: curl -F "file=@test.pdf" https://my.hiddenwebsite.com/upload 但是如果我尝试使用Axios复制HTTP请求,它会给我一个错误文件,\u而不是代码400。下面是我试图执行的代码 let form = new FormData(); let stream = fs.createReadStream
curl -F "file=@test.pdf" https://my.hiddenwebsite.com/upload
但是如果我尝试使用Axios复制HTTP请求,它会给我一个错误文件,\u而不是代码400。下面是我试图执行的代码
let form = new FormData();
let stream = fs.createReadStream(path.join(__dirname, "test.pdf"));
form.append("file", stream);
let formHeaders = form.getHeaders();
const request_config = {
headers: {
...formHeaders,
},
};
axios
.post("https://my.hiddenwebsite.com/upload", form, request_config)
.then((res) => {
console.log(res.data);
})
.catch((err) => {
console.log(err.response.data);
});
如果有人能告诉我我做错了什么,那就太好了。
createReadStream
返回一个流,而不是一个文件。也许能更好地为您服务您的代码在测试服务器上对我有效。我想知道您的服务器是否需要特定的文件名?“它会期待“文件”以外的东西吗?”@AndreNuechter,我刚才试过了,但同样也不行error@TerryLennox我不是一个真正的CURL专家,我不经常使用它,但我认为“file=@text.pdf”意味着服务器需要一个文件名为“file”的文件。我错了吗?抱歉,@Sosnos,你是对的。这很奇怪。。我可以使用您的代码上传到运行Express/Multer的本地测试服务器。。。肯定还有其他问题…createReadStream
返回的是流,而不是文件。也许能更好地为您服务您的代码在测试服务器上对我有效。我想知道您的服务器是否需要特定的文件名?“它会期待“文件”以外的东西吗?”@AndreNuechter,我刚才试过了,但同样也不行error@TerryLennox我不是一个真正的CURL专家,我不经常使用它,但我认为“file=@text.pdf”意味着服务器需要一个文件名为“file”的文件。我错了吗?抱歉,@Sosnos,你是对的。这很奇怪。。我可以使用您的代码上传到运行Express/Multer的本地测试服务器。。。一定是出了什么问题。。。