第29天:档案下载

目前我们完成档案上传的功能,接下来就要进行档案下载

写一个专门下载档案的Action,接受ID参数,去资料库看目录中有没有这个档案,有的话就去档案存放资料夹将档案传给Client。

   public async Task<IActionResult> Get(Guid id)
    {
        var fileData = _context.File.Find(id.ToString());
        if (fileData == null)
        {
            return NotFound();
        }

        var path = $"data/{fileData.Name}";
        var memoryStream = new MemoryStream();
        await using (var stream = new FileStream(path, FileMode.Open))
        {
            await stream.CopyToAsync(memoryStream);
        }
        memoryStream.Seek(0, SeekOrigin.Begin);

        var contentTypes = new Dictionary<string, string>
        {
            {".png", "image/png"},
            {".jpg", "image/jpeg"},
            {".jpeg", "image/jpeg"},
            {".gif", "image/gif"}
        };

        // 要跟前端说要下载档案的类型
        return new FileStreamResult(
            memoryStream,contentTypes[Path.GetExtension(path).ToLowerInvariant()]);

}

参考资料


<<:  这些日子我学到的JavaScript:Day26- BOM

>>:  Day 29 测试 React 元件:测试 React Hook

Golang 安装

安装 安装golang,可到官网的下载页面进行下载(https://golang.org/dl/) ...

03 - Uptime - 掌握系统的生命徵象 (1/4) - 我们要观测的生命徵象是什麽?

Uptime - 掌握系统的生命徵象 系列文章 (1/4) - 我们要观测的生命徵象是什麽? (2/...

【第二一天 - Flutter Blue 蓝芽文件说明】

前言 官方套件使用范例 想带大家认识 Flutter Blue 套件 怎麽使用。 了解里面的参数。 ...

Day15vue.js网站登出

延续昨日 我们今天先把 登出的功能给搞定 不然每次都要清除session不然就是要重开== 由於我们...

GMail 挡信,DNS Server 需要新增 spf dmarc dkim 该怎麽设定

GMail 挡信,DNS Server 需要新增 spf dmarc dkim 该怎麽设定 原文出处...