要在服务器上传任何内容......要使用什么?

时间:2010-06-07 10:50:48

标签: c# web-services

我正在提出一份申请,
如果我想在基于C#的应用程序中上传服务器上的数据,该怎么用 我在网络服务中知道这个名字[我不知道如何使用它? ]

1. SOAP,
2. REST,
3. AWS

所以我的问题是,
我可以将数据文件上传到服务器的方式有多少? 我是否必须使用网络服务或以其他方式上传数据文件?
顺便说一下......我只是初学C#和网络服务......所以你可能会发现这个问题很简单。

<小时/> 提前谢谢,
邓尼茨。


编辑:
我的应用。是基于Windows的.....
以及将从我的应用程序生成的文件。 ,我想存储在服务器.....

2 个答案:

答案 0 :(得分:5)

您无需使用任何精美的“Web服务”技术将数据从客户端应用程序上载到服务器。您可以创建一个简单的ASP.NET Web处理程序并从请求正文中保存输入文件:

public class FileUploader : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
       string fileName = context.Request.QueryString["FileName"];
       byte[] fileData = context.Request.BinaryRead(context.Request.ContentLength);
       string path = ...; // decide where you want to save the file
       File.WriteAllBytes(path, fileData);
    }

    public bool IsReusable
    {
        get { return false; }
    }
}

从客户端应用中,您可以使用WebClient.UploadFile method

using (var client = new WebClient()) {
    client.QueryString["FileName"] = fileName;
    client.UploadData(url, inputFileData); 
}

这种方法消除了SOAP等协议的开销,并直接在HTTP请求体中发布文件。

答案 1 :(得分:0)

如果您真的想要上传/下载**文件*,您应该选择File Transfer Protocol (FTP)