1. 程式人生 > 實用技巧 >.net core多檔案上傳 日誌記錄

.net core多檔案上傳 日誌記錄

光檔案上傳只生成頁面就行了,在這裡我只是做個檔案上傳的測試,至於.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"屬性也要加上,不然後臺接收不到檔案的