Javascript 使用NodeJS和electron上传图像。(从c#代码转换)

Javascript 使用NodeJS和electron上传图像。(从c#代码转换),javascript,c#,node.js,electron,restsharp,Javascript,C#,Node.js,Electron,Restsharp,我正在将一个应用程序从c#转换为electron,当我试图请求在服务器(而不是我的服务器)上上载图像时,遇到了一些问题 对于c#,我使用了RestSharp库,所有这些都很好 private void UploadImage(string id) { RestClient client = new RestClient("https://www.website.com") { CookieContainer = new Co

我正在将一个应用程序从c#转换为electron,当我试图请求在服务器(而不是我的服务器)上上载图像时,遇到了一些问题

对于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);
    }
如何在NodeJS中转换此代码?我唯一能找到的就是上传到他们自己的服务器上的代码,而这些代码对我来说并不适用

这就是我在NodeJS中尝试的

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'
  });

我一直在尝试使用相同的技术,使用Electron将文件上载到本地主机测试服务器,但没有成功。我的代码在控制台中返回为成功,但从未上载任何文件。这是你遇到的问题,还是你能看到我做的有什么不同

const fs = require('fs');
const request = require('request');

var uploadURL = 'http://localhost:80/sandbox/img';

var req = request.post(uploadURL, function (err, resp, body) {
    if (err) {
        console.log(err);
    } else {
        console.log(body);
    }
});

var form = req.form();

form.append('upload', fs.createReadStream("C:/nodejs/dave/assets/img/brand_logos/logo.jpg"), {
    filename: "logo.jpg",
    contentType: 'image/jpeg'
});
下面是我得到的回复,我假设这是预期的

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://localhost/sandbox/img/">here</a>.</p>
<hr>
<address>Apache/2.4.27 (Win64) PHP/7.0.23 Server at localhost Port 80</address>
</body></html>

301永久搬迁
永久移除
文档已移动


本地主机端口80上的Apache/2.4.27(Win64)PHP/7.0.23服务器
您能详细说明“不适合我”的含义吗?。你有错误吗?如果有,是什么?您的内部函数(调用
console.log
)是否被调用?还是发生了其他情况?调用了console.log,但没有将图像上载到服务器,调用了
console.log
行、有
错误的行或有
响应的行?
body
包含什么?另外,响应的状态代码是什么?(要获取此信息,请参阅上的代码。)请编辑您的问题以包含此信息。编辑问题我建议您提出一个新问题,您将无法在此处获得任何答案。