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

 
 
 
 
进群学习交流加 : mm1552923

如果喜欢我的文章,那么

“在看”和转发是对我最大的支持!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值