netcore文件上传下载
时间: 2023-09-01 11:02:57 浏览: 55
NetCore是一个跨平台的开发框架,它支持文件上传和下载功能。
在NetCore中,我们可以使用MVC框架来实现文件上传和下载。首先,我们需要创建一个Controller来处理文件上传和下载的请求。
对于文件上传,我们可以使用`IFormFile`接口来接收客户端发送的文件。在Controller中,我们可以通过`Request.Form.Files`属性来获取上传的文件。然后,我们可以将文件保存到服务器本地的指定路径上,或者将文件直接存储到数据库中。
示例代码如下:
```csharp
[HttpPost]
public IActionResult UploadFile(IFormFile file)
{
// 获取文件名
var fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');
// 保存文件到本地路径
var filePath = Path.Combine(Directory.GetCurrentDirectory(), "uploads", fileName);
using (var stream = new FileStream(filePath, FileMode.Create))
{
file.CopyTo(stream);
}
return Ok("文件上传成功");
}
```
对于文件下载,我们可以通过返回一个`FileStreamResult`对象来实现。在Controller中,我们可以将文件从服务器本地路径读取为一个流,然后将该流返回给客户端。
示例代码如下:
```csharp
[HttpGet]
public IActionResult DownloadFile(string fileName)
{
// 获取文件路径
var filePath = Path.Combine(Directory.GetCurrentDirectory(), "uploads", fileName);
// 从文件路径读取为流
var stream = new FileStream(filePath, FileMode.Open);
// 返回文件流
return new FileStreamResult(stream, "application/octet-stream")
{
FileDownloadName = fileName
};
}
```
以上就是使用NetCore实现文件上传和下载的简单示例。通过这些代码,我们可以实现在NetCore应用中处理文件的上传和下载操作。