iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 26
1
自我挑戰組

後端或是ASP.NET Core的學習筆記系列 第 26

第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
)

時間所剩不多,今天先寫到這邊><


上一篇
第25天:實作檔案上傳功能(2)
下一篇
第27天:實作檔案上傳功能(4)
系列文
後端或是ASP.NET Core的學習筆記30

尚未有邦友留言

立即登入留言