第26天:实作档案上传功能(3)

昨天我们档案上传功能有个问题是不能上传太大的档案,根据我的研究发现,写入档案的部分所需要的时间是不一定的可大可小,所以应该使用非同步的方式来操作,并await等待写入完成。

[HttpPost]
public async Task<IActionResult> AddProduct(AddProductViewModel productViewModel)
{
   ...
   
    //将使用者上传的档案写入到指定路径
    await using (var stream = System.IO.File.Create(filePath))
    {
        //执行写入
        await productViewModel.File.CopyToAsync(stream);
    }
    ...
}

https://ithelp.ithome.com.tw/upload/images/20201011/20120420D4jXszu3rB.png

接下来要储存档案的路径,这边我在资料库建立一个储存档案路径的资料表叫做File,id我要使用长度36位数的GUID来表示,Name就是新档案的名称。

CREATE TABLE [dbo].[File]
(
	[Id] CHAR(36) NOT NULL PRIMARY KEY, 
    [Name] NVARCHAR(50) NOT NULL
)

时间所剩不多,今天先写到这边><


<<:  Processing - Day 26 数学好棒棒 第一篇章

>>:  ## 第二十九课:自由练习

D07 / 怎麽显示大量资料 - Lazy composables ( LazyColumn & StickyHeader )

今天大概会聊到的范围 LazyColumn StickyHeader 基本的画面可以显示了,但在 ...

DAY 3 Big Data 5Vs – Volume(容量) - S3

如同软件需要硬体,资料分析的基石就是资料储存。在处理的过程中,资料(data)需要在长期或暂时性的储...

Day43 ( 电子元件 ) 触碰开灯 ( 引脚按下 )

触碰开灯 ( 引脚按下 ) 教学原文参考:触碰开灯 ( 引脚按下 ) 这篇文章会介绍如何使用「当引脚...

SPML用於将跨资讯系统之创建和管理实体和属性的过程自动化

在一个电信行业的技术词汇,它是指为了向用户提供(新)服务的准备和安装一个网络的处理过程。它也包括改变...

[29] 用 python 刷 Leetcode: 404

原始题目 Given the root of a binary tree, return the s...