c# 服务端接收上传文件的代码
时间: 2023-10-28 10:00:08 浏览: 139
在C#中,可以使用ASP.NET Web API或ASP.NET Core API来编写服务端接收上传文件的代码。下面是一个简单的ASP.NET Core API的示例代码:
```csharp
[HttpPost("upload")]
public async Task<IActionResult> Upload(IFormFile file)
{
if (file == null || file.Length == 0)
return BadRequest("No file selected.");
string path = Path.Combine(Directory.GetCurrentDirectory(), "uploads", file.FileName);
using (var stream = new FileStream(path, FileMode.Create))
{
await file.CopyToAsync(stream);
}
return Ok("File uploaded successfully.");
}
```
在此代码中,我们首先检查是否选择了文件,并将其保存在指定的路径下。您可以根据需要更改上传文件的路径。
在客户端代码中,您可以使用WebClient.UploadFile方法将文件上传到此API的URL:http://example.com/api/upload。需要注意的是,这里假设您的API位于http://example.com/api下,如果您的API位于不同的URL下,需要相应更改上传文件的URL。
此外,需要在Startup.cs文件中启用文件上传功能。在ConfigureServices方法中添加以下代码:
```csharp
services.AddControllers();
services.AddCors();
services.AddMvc(options => options.EnableEndpointRouting = false);
services.Configure<FormOptions>(options =>
{
options.MultipartBodyLengthLimit = long.MaxValue;
options.ValueLengthLimit = int.MaxValue;
options.MemoryBufferThreshold = int.MaxValue;
});
```
在Configure方法中添加以下代码:
```csharp
app.UseStaticFiles();
app.UseCors(builder => builder.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod());
app.UseMvc();
```
这将启用文件上传,并允许从任何来源接收跨域HTTP请求。
阅读全文