C# HttpListener 接收到word文档保存到本地文件,如果有当前名称的文件则替换,如果没有则新建
时间: 2023-12-04 13:05:36 浏览: 29
可以使用以下代码来实现:
```csharp
using System;
using System.IO;
using System.Net;
using System.Text;
class HttpListenerExample
{
static void Main(string[] args)
{
HttpListener listener = new HttpListener();
listener.Prefixes.Add("http://localhost:8080/");
listener.Start();
Console.WriteLine("Listening...");
while (true)
{
HttpListenerContext context = listener.GetContext();
HttpListenerRequest request = context.Request;
if (request.HttpMethod == "POST")
{
string filename = request.Headers["filename"];
if (filename == null)
{
Console.WriteLine("Filename not found in headers");
continue;
}
string filePath = Path.Combine(Environment.CurrentDirectory, filename);
using (Stream inputStream = request.InputStream)
using (FileStream fileStream = new FileStream(filePath, FileMode.Create))
{
inputStream.CopyTo(fileStream);
}
Console.WriteLine("File saved to {0}", filePath);
HttpListenerResponse response = context.Response;
response.StatusCode = (int)HttpStatusCode.OK;
response.Close();
}
}
}
}
```
这个例子中,我们首先创建了一个 HttpListener 对象并指定监听的前缀。然后进入一个无限循环,不断等待客户端的请求。
当客户端发送 POST 请求时,我们从请求头中获取文件名,并根据文件名构造文件路径。如果文件已经存在,则使用 FileMode.Create 来覆盖原有文件,否则新建一个文件。
然后,我们从请求的 InputStream 中读取文件内容,并将其写入文件流中。最后返回一个 HTTP 200 状态码表示请求已经成功处理。