使用节点js和电子上传图像。 (从C#代码转换)

我将应用程序从C#转换为电子,当我尝试请求在服务器(而不是我的服务器)上传图像时,出现了一些问题。

对于C#我使用RestSharp库和一切工作正常。

private void UploadImage(string id) { RestClient client = new RestClient("https://www.website.com") { CookieContainer = new CookieContainer() }; string path = @"D:\Downloads\image.jpg"; var request = new RestRequest("/upload?id=" + id, Method.POST); request.AddFile("myfile", File.ReadAllBytes(path), Path.GetFileName(path), "image/jpeg"); request.AddHeader("Content-type", "application/json"); request.AddHeader("Accept", "application/json"); request.RequestFormat = DataFormat.Json; client.Execute(request); } 

我如何转换这个代码在Node js? 我唯一能find的就是上传到自己服务器的代码,这对我不起作用。

这是我在Node js中尝试的

 var fs = require('fs'); var request = require('request'); fs.createReadStream("D:\Downloads\image.jpg").pipe(request.post("https://www.website.com/upload?id=" + productId, function (error, response, body) { if (error) { console.log(error); } else { console.log(response); } })); 

使用上面的代码我得到状态代码200和身体的反应是告诉我没有图像被选中。 所以请求正在工作,但发送图像不。

这是我为了解决问题所做的。 也许它也会帮助别人。

 var fs = require('fs'); var request = require('request'); var req = request.post(uploadURL, function (err, resp, body) { if (err) { console.log('Error!'); } else { console.log('URL: ' + body); } }); var form = req.form(); form.append('myfile', fs.createReadStream("path\to\image.jpg"), { filename: "image.jpg", contentType: 'image/jpeg' });