C# HttpListener 接收到大型文件保存到本地
时间: 2023-07-27 13:12:21 浏览: 236
要实现该功能,您需要将以下步骤分解为更小的任务:
1. 创建一个HttpListener对象并开始监听请求
2. 接收POST请求并读取请求实体中的数据
3. 将接收到的数据保存到本地文件中
下面是一个示例代码,可以帮助您完成这些任务:
```csharp
using System;
using System.IO;
using System.Net;
class Program
{
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")
{
// 获取请求实体中的数据
using (Stream inputStream = request.InputStream)
{
byte[] buffer = new byte[4096];
int bytesRead;
string fileName = Path.GetFileName(request.Url.LocalPath);
using (FileStream outputStream = File.Create(fileName))
{
while ((bytesRead = inputStream.Read(buffer, 0, buffer.Length)) > 0)
{
outputStream.Write(buffer, 0, bytesRead);
}
}
Console.WriteLine($"File saved as {fileName}");
}
context.Response.StatusCode = 200;
}
else
{
context.Response.StatusCode = 405;
}
context.Response.Close();
}
}
}
```
这段代码创建了一个`HttpListener`对象,它监听来自`http://localhost:8080/`的请求。当请求方法为`POST`时,它将请求实体中的数据保存到本地文件中。您可以使用Postman等工具向该地址发送POST请求并上传文件。
阅读全文