以下是使用 Web API 实现上传和下载多个文件的代码示例:
上传多个文件:.
```c#[Route("upload")][HttpPost]public async Task<IActionResult> Upload(List<IFormFile> files){// 遍历上传的文件列表foreach (var file in files){// 保存文件到本地var filePath = Path.Combine("D:\\uploads", file.FileName);using (var stream = System.IO.File.Create(filePath)){await file.CopyToAsync(stream);}}return Ok("上传成功");}```
在上传多个文件的方法中,使用 List<IFormFile> 类型的参数来接收客户端上传的文件列表。遍历文件列表,保存每个文件到本地。在本例中,将文件保存到 D:\uploads 目录下。
下载多个文件:
```c#[Route("download")][HttpGet]public IActionResult Download(){// 获取要下载的文件列表var filePaths = new List<string>{"D:\\uploads\\file1.txt","D:\\uploads\\file2.txt","D:\\uploads\\file3.txt"};// 压缩文件并下载var archiveFilePath = "D:\\archives\\files.zip";using (var archive = ZipFile.Open(archiveFilePath, ZipArchiveMode.Create)){foreach (var filePath in filePaths){archive.CreateEntryFromFile(filePath, Path.GetFileName(filePath));}}return PhysicalFile(archiveFilePath, "application/octet-stream", "files.zip");}```
在下载多个文件的方法中,使用 List<string> 类型的变量来存储要下载的文件列表。在本例中,要下载的文件列表包括 D:\uploads\file1.txt、D:\uploads\file2.txt 和 D:\uploads\file3.txt。使用 System.IO.Compression.ZipFile 类将文件压缩成 Zip 归档文件,并将归档文件作为响应体返回客户端。客户端可以通过浏览器或下载工具下载压缩文件。这里使用 PhysicalFile 方法来返回文件流,并设定返回的 MIME 类型为 application/octet-stream,表示二进制数据流。