.net core多檔案上傳 日誌記錄
阿新 • • 發佈:2020-07-28
光檔案上傳只生成頁面就行了,在這裡我只是做個檔案上傳的測試,至於.net core的依賴注入和一些其他的配置資訊,等我整理好了再來談一談,最近一直在整檔案上傳
大部分的步驟和我上一篇檔案一樣,只在後臺做了一些修改
上篇文章地址:https://www.cnblogs.com/ataoliu/p/13387464.html
控制器裡面的程式碼
using System.Diagnostics; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging;using CoreUpLoad.Models; using Microsoft.AspNetCore.Http; using System.IO; namespace CoreUpLoad.Controllers { public class HomeController : Controller { public IActionResult Upload() { return View(); } #region MyRegion [HttpPost] //上傳檔案是 post 方式,這裡加不加都可以public async Task<IActionResult> UploadFiles(List<IFormFile> files) { var filepath = Directory.GetCurrentDirectory() + "\\file"; //儲存檔案的路徑 foreach (var item in files) //上傳選定的檔案列表 { if (item.Length > 0) //檔案大小 0 才上傳 { var thispath = filepath + "\\" + item.FileName; //當前上傳檔案應存放的位置 if (System.IO.File.Exists(thispath) != true) //如果檔案已經存在,跳過此檔案的上傳 { //上傳檔案 using (var stream = new FileStream(thispath, FileMode.Create)) //建立特定名稱的檔案流 { try { await item.CopyToAsync(stream); //上傳檔案 } catch (Exception) { } } } } } return View(); } } }
控制器方法
UploadFiles(List<IFormFile> files)
UploadFiles是上傳用的方法
List<IformFile>是引數,因為是多檔案上傳,所以要使用一個集合去接受上傳的檔案
接收到檔案後自己在根據需求去寫一些邏輯程式碼
前臺頁面的寫法
@{ ViewData["Title"] = "Upload"; } <form method="post" enctype="multipart/form-data" asp-controller="Home" asp-action="UploadFiles"> <div class="form-group"> <div class="col-md-12"> <p>選擇要上傳的檔案</p> <input type="file" name="files" multiple /> </div> </div> <div class="form-group"> <div class="col-md-12"> <input type="submit" value="上傳" /> </div> </div> </form>
multiple 一定要寫,因為他是html支援多檔案上傳的一個屬性
同時form表單enctype="multipart/form-data"屬性也要加上,不然後臺接收不到檔案的