使用Web API上传和下载多个文件 「附代码」

以下是使用 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,表示二进制数据流。