在 .NET Core 中,可以使用 ASP.NET Core 的文件上传和下载功能来实现图片文件的上传和下载。以下是 .NET Core 实现图片文件上传下载功能的完整攻略:
步骤一:创建上传文件控制器
在使用文件上传功能之前,需要创建上传文件控制器。可以在 ASP.NET Core 项目中的 Controllers 文件夹中创建上传文件控制器。以下是一个示例:
[ApiController]
[Route("[controller]")]
public class UploadController : ControllerBase
{
private readonly IWebHostEnvironment _environment;
public UploadController(IWebHostEnvironment environment)
{
_environment = environment;
}
[HttpPost]
public async Task<IActionResult> Upload(IFormFile file)
{
if (file == null || file.Length == 0)
{
return BadRequest("No file selected.");
}
var fileName = Path.GetFileName(file.FileName);
var filePath = Path.Combine(_environment.WebRootPath, "uploads", fileName);
using (var stream = new FileStream(filePath, FileMode.Create))
{
await file.CopyToAsync(stream);
}
return Ok("File uploaded successfully.");
}
}
在上面的示例中,我们创建了一个名为 UploadController 的上传文件控制器。我们在控制器的构造函数中注入了 IWebHostEnvironment 接口,用于获取 Web 根目录的路径。我们在 Upload 方法中使用 IFormFile 接口获取上传的文件,并将其保存到 Web 根目录的 uploads 文件夹中。
步骤二:创建下载文件控制器
在使用文件下载功能之前,需要创建下载文件控制器。可以在 ASP.NET Core 项目中的 Controllers 文件夹中创建下载文件控制器。以下是一个示例:
[ApiController]
[Route("[controller]")]
public class DownloadController : ControllerBase
{
private readonly IWebHostEnvironment _environment;
public DownloadController(IWebHostEnvironment environment)
{
_environment = environment;
}
[HttpGet("{fileName}")]
public IActionResult Download(string fileName)
{
var filePath = Path.Combine(_environment.WebRootPath, "uploads", fileName);
if (!System.IO.File.Exists(filePath))
{
return NotFound();
}
var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
return File(fileStream, "application/octet-stream", fileName);
}
}
在上面的示例中,我们创建了一个名为 DownloadController 的下载文件控制器。我们在控制器的构造函数中注入了 IWebHostEnvironment 接口,用于获取 Web 根目录的路径。我们在 Download 方法中使用文件名获取文件的路径,并使用 FileStream 类型打开文件流。最后,我们使用 File 方法返回文件流。
示例一:使用 HTML 表单上传文件
以下是一个示例,演示如何使用 HTML 表单上传文件:
<form method="post" enctype="multipart/form-data" action="/upload">
<input type="file" name="file" />
<button type="submit">Upload</button>
</form>
在上面的示例中,我们使用 HTML 表单创建了一个文件上传控件,并将其提交到 /upload 路由。
示例二:使用链接下载文件
以下是一个示例,演示如何使用链接下载文件:
<a href="/download/file.jpg">Download</a>
在上面的示例中,我们使用链接创建了一个文件下载控件,并将其链接到 /download/file.jpg 路由。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:.Net Core实现图片文件上传下载功能 - Python技术站