昨天我們檔案上傳功能有個問題是不能上傳太大的檔案,根據我的研究發現,寫入檔案的部分所需要的時間是不一定的可大可小,所以應該使用非同步的方式來操作,並await等待寫入完成。
[HttpPost]
public async Task<IActionResult> AddProduct(AddProductViewModel productViewModel)
{
...
//將使用者上傳的檔案寫入到指定路徑
await using (var stream = System.IO.File.Create(filePath))
{
//執行寫入
await productViewModel.File.CopyToAsync(stream);
}
...
}
接下來要儲存檔案的路徑,這邊我在資料庫建立一個儲存檔案路徑的資料表叫做File,id我要使用長度36位數的GUID來表示,Name就是新檔案的名稱。
CREATE TABLE [dbo].[File]
(
[Id] CHAR(36) NOT NULL PRIMARY KEY,
[Name] NVARCHAR(50) NOT NULL
)
時間所剩不多,今天先寫到這邊><