C#文件上传下载服务端
时间: 2024-08-30 09:01:52 浏览: 59
C#webapi文件上传下载源码
3星 · 编辑精心推荐
在C#中,创建文件上传和下载的服务端通常涉及到Web开发,特别是使用ASP.NET Core框架。以下是一个简化的步骤说明:
1. **设置项目**: 创建一个新的ASP.NET Core Web API项目。可以使用Visual Studio或其他支持.NET Core的IDE。
2. **安装依赖**:
- `Microsoft.AspNetCore.Http.Files`:用于处理文件上传。
- `Microsoft.Net.Http.Client` 或 `HttpClientFactory`:用于下载文件。
3. **添加控制器**: 创建一个或多个控制器,比如`FileController.cs`,并使用`[HttpPost]` 和 `[HttpGet]` 注解来标记上传和下载操作的路由。
4. **文件上传**:
- 使用`IFormFile`接收来自客户端的文件数据。
```csharp
[HttpPost("upload")]
public async Task<IActionResult> Upload(IFormFile file)
{
if (file == null || file.Length == 0)
return BadRequest("No file uploaded.");
// 检查文件大小、类型等限制,然后保存到服务器指定目录
string filePath = Path.CombineHostingEnvironment.MapPath("/uploads"), file.FileName);
using (var stream = File.Create(filePath))
{
await file.CopyToAsync(stream);
}
return Ok("File uploaded successfully.");
}
```
5. **文件下载**:
- 接收文件名作为URL查询参数或请求路径参数。
```csharp
[HttpGet("download/{filename}")]
public IActionResult Download(string filename)
{
string filePath = Path.CombineHostingEnvironment.MapPath("/uploads"), filename);
if (!System.IO.File.Exists(filePath))
return NotFound();
var fileStream = System.IO.File.OpenRead(filePath);
return File(fileStream, "application/octet-stream", filename);
}
```
6. **错误处理**:
对于文件不存在、权限问题等异常情况,需要捕获并返回适当的HTTP状态码和错误信息。
阅读全文