5-5.ASP.NET Core MVC 入門教學 - 取得上傳檔案

ASP.NET Core MVC 入門教學

首先先在View中加入上傳檔案的input

<div class="form-group">
    <label for="Files" class="control-label">Files</label>
    <input name="Files" type="file" multiple class="form-control" />
</div>

另外上面的from要多加一段宣告enctype="multipart/form-data",才能夠接收到檔案

<form method="post" action="/News2/Create" enctype="multipart/form-data">

接著在我們Controller中要怎麼取得檔案呢?

單一檔案:IFormFile 
複數檔案:IFormFileCollectionIEnumerable<IFormFile>List<IFormFile>ICollection<IFormFile>

在Dto中依你的需求宣告以上的類別,那我們這邊示範接收多個檔案

namespace Kcg.Dtos
{
    public class NewsCreateDto
    {

        public string Title { get; set; }

        public string Contents { get; set; }

        public int DepartmentId { get; set; }

        public DateTime StartDateTime { get; set; }

        public DateTime EndDateTime { get; set; }

        public List<IFormFile> Files { get; set; }
    }
}

接著我們把它存在目錄下

foreach (var item in news.Files)
{
    var filePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/uploads", item.FileName);

    using (var stream = new FileStream(filePath, FileMode.Create))
    {
        await item.CopyToAsync(stream);
    }
}

最後我們來試試看能不能成功取到資料並上傳成功

選擇兩個檔案,按下Create後,可以發現檔案成功的傳到指定目錄下了

 

範例檔:下載




Copyright © 凱哥寫程式 2022 | Powered by TalllKai ❤