ASP.NET Core 实现文件上传和下载
在 ASP.NET Core 中,可以使用多种方式实现文件上传和下载。本攻略将详细介绍如何在 ASP.NET Core 中实现文件上传和下载,并提供多种上传方式的示例。
步骤一:编写文件上传代码
在 ASP.NET Core 中,可以使用 IFormFile 接口实现文件上传。以下是一个简单的文件上传示例:
[HttpPost]
public async Task<IActionResult> Upload(IFormFile file)
{
if (file == null || file.Length == 0)
{
return BadRequest("No file selected.");
}
var filePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", file.FileName);
using (var stream = new FileStream(filePath, FileMode.Create))
{
await file.CopyToAsync(stream);
}
return Ok();
}
以上代码中,Upload 方法接受一个 IFormFile 对象,用于表示上传的文件。如果文件为空或长度为 0,则返回 BadRequest。否则,将文件保存到 wwwroot 目录下,并返回 Ok。
步骤二:编写文件下载代码
在 ASP.NET Core 中,可以使用 FileResult 类实现文件下载。以下是一个简单的文件下载示例:
[HttpGet]
public IActionResult Download(string fileName)
{
var filePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", fileName);
if (!System.IO.File.Exists(filePath))
{
return NotFound();
}
var fileStream = new FileStream(filePath, FileMode.Open);
return File(fileStream, "application/octet-stream", fileName);
}
以上代码中,Download 方法接受一个 fileName 字符串,用于表示要下载的文件名。如果文件不存在,则返回 NotFound。否则,将文件流返回给客户端,并设置 Content-Type 为 application/octet-stream。
示例说明
以下是两个示例说明:
示例一:使用 Upload 方法上传文件
使用 Upload 方法上传文件,可以将文件保存到服务器上。以下是一个简单的示例:
<form method="post" enctype="multipart/form-data" action="/Upload">
<input type="file" name="file" />
<button type="submit">Upload</button>
</form>
以上代码中,使用 form 表单提交文件,并将文件上传到 /Upload 路径。
示例二:使用 Download 方法下载文件
使用 Download 方法下载文件,可以将文件从服务器上下载到客户端。以下是一个简单的示例:
<a href="/Download?fileName=myfile.txt">Download</a>
以上代码中,使用 a 标签链接到 /Download 路径,并传递要下载的文件名。用户点击链接后,将会下载该文件。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ASP.NET Core实现文件上传和下载 - Python技术站