如何使用WebRequest从C#Windows表单将文件上传到Node.js服务器(使用强大)? - c#

节点服务器如下所示:

app.post('/api/upload', function(req, res){
  var form = new formidable.IncomingForm();
  form.parse(req, function (err, fields, files) {
    var oldpath = files.filetoupload.path;
    var newpath = 'C:/Users/Phili/Desktop/' + files.filetoupload.name;
    fs.rename(oldpath, newpath, function (err) {
      if (err) throw err;
      res.write('File uploaded and moved!');
      res.end();
    });
  });
});

我使用express进行post get等操作,并且处理传入的文件请求和文件系统fs非常困难。我正在使用C#桌面应用程序,该应用程序使用aws EC2实例上托管的node.js服务器,程序的其余部分都可以正常工作,但似乎无法使上传文件正常工作。

有人可以帮助我,给我链接教程或向我展示如何做吗?我已经使用Webrequests如下处理了C#中的程序的其余部分,但是我似乎无法获得上载文件的正确方法

public string sendToServer(string method, string urlEx, string[] headerKey, string[] headerVal)
{
    string URL = "http://34.253.45.82:8080" + urlEx;
    var request = WebRequest.Create(URL);
    request.ContentType = "application/json; charset=utf-8";
    string text;
    request.Method = method;

    for (int i = 0; i < headerKey.Length; i++)
    {
        request.Headers.Add(headerKey[i], headerVal[i]);
    }

    var response = (HttpWebResponse)request.GetResponse();

    using (var sr = new StreamReader(response.GetResponseStream()))
    {
        text = sr.ReadToEnd();
    }

    return text;
}

参考方案

这对我有用

using (HttpClient httpClient = new HttpClient())
using (var multiPartContent = new MultipartFormDataContent())
{
     var fileContent = new ByteArrayContent(image);
     fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
     {
         FileName = attachementname
     };
     multiPartContent.Add(fileContent);
     HttpResponseMessage response = await httpClient.PostAsync(url, multiPartContent);

     Stream body = await response.Content.ReadAsStreamAsync();
     .....

}

如何在“后台”中运行脚本的一部分(单个函数)? - python

我在具有以下基本结构(伪代码)的服务器上运行python脚本:for data_item in data_items: processed_result=process_data(data_item); #this takes time T0 upload_result_to_site(processed_result) #this takes time T…

为什么在Python中根据@staticmethod选择模块级别的函数(根据Google样式指南)? - python

根据《 Google Python样式指南》,绝对不应(几乎)使用静态方法: 除非为了与 在现有库中定义的API。编写模块级功能 代替该建议背后的原因是什么?这是否仅适用于Google?还是在Python中使用静态方法还有其他(更一般的)缺点?尤其是,如果我想在将由该类的其他公共成员函数调用的类中实现实用程序功能,则最佳实践是什么?class Foo: ..…

mkvirtualenv命令是什么意思?是Linux命令还是python命令..? [关闭] - python

Closed. This question is off-topic。它当前不接受答案。                                                                                                                                        …

为什么没有用于C#应用程序开发的开源框架(如Java)? - c#

                                            近年来,C#比Java流行得多。作为一种通用的编程语言,许多人认为C#的设计要优于Java。为什么到现在为止还没有用于C#应用程序开发的开源框架?为什么没有人主动为C#开发可与Java媲美的开源框架?(许多人说,Mono不是一个成熟的框架,不应在认真的应用程序开发中使用。…

使用存储在与主程序不同的文件夹中的参考库(dll)? - c#

(这可能是一个很明显的问题,但我不确定该问Bing / Google是什么)在VS2008(C#Winforms)项目中,有大量引用的第三方库。该项目使用“ Copy Local = True”,以便使各种DLL文件最终与已编译的应用程序位于同一文件夹中。为了清理问题,我想修改程序,使库都在子文件夹下。例如:C:\ MyProgram \->主程序文件…