十七、.NET CORE上传附件方法(From表单上传)
@model BaseFramePro.Models.Entities.EnvironType @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>上传升级文件</title> <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <link rel="stylesheet" href="~/layuimini/lib/layui-v2.5.5/css/layui.css" media="all"> <link rel="stylesheet" href="~/layuimini/css/public.css" media="all"> </head> <body> <div class="layuimini-container"> <div class="layuimini-main"> <fieldset class="layui-elem-field layui-field-title" style="margin-top: 50px;"> <legend>上传升级文件</legend> </fieldset> @Html.AntiForgeryToken() @*<form class="layui-form" method="post" enctype="multipart/form-data" asp-controller="EnvironUpgrade" asp-action="FileSave" asp-route-id="@Model.TypeID">*@ <form class="layui-form" method="post" enctype="multipart/form-data" action="/api/EnvironUpgrade/FileSave?id=@Model.TypeID" > <div> <div> <div class="layui-form-item"> <label class="layui-form-label">选择升级文件:</label> <div class="layui-input-block"> <input type="file" class="layui-upload-choose" name="files" /> <button class="layui-btn" lay-submit="" type="submit">上传</button> </div> </div> </div> </div> </form> </div> </div> <style type="text/css"> .layui-form-label { width: 100px; } .layui-input-block { margin-left: 130px; } </style> <script src="~/layuimini/lib/layui-v2.5.5/layui.js" charset="utf-8"></script> <script> layui.use(['form', 'layer', 'laydate'], function () { var form = layui.form , $ = layui.jquery , layer = layui.layer; }); </script> </body> </html>
@Model.TypeID为我的赋值参数,可以换成自己的,或者直接写值
@*<form class="layui-form" method="post" enctype="multipart/form-data" asp-controller="EnvironUpgrade" asp-action="FileSave" asp-route-id="@Model.TypeID">*@这种也是form的方法
/// <summary> /// 上传升级包(方法1) /// </summary> /// <param name="files"></param> /// <param name="id"></param> /// <returns></returns> [HttpPost] public async Task<IActionResult> FileSave(List<IFormFile> files, string id) { if (files.Count == 0) { return Ok(new RtnObj { code = false, msg = "升级文件上传失败,未找到文件", data = "" }); } string filesName = ""; string suffix = ""; filesName = DateTime.Now.ToString("yyyyMMddhhmmss"); IFormFile file = files as IFormFile; long size = files.Sum(f => f.Length); string folder = webRootPath + "\\FileUpload\\UpgradeFile\\" + id; if (!Directory.Exists(folder)) { Directory.CreateDirectory(folder); } if (files != null && files.Count > 0) { //suffix = files[0].FileName.Split('.')[files[0].FileName.Split('.').Length - 1]; suffix = System.IO.Path.GetExtension(files[0].FileName); string fileTxt = folder + "\\" + id + "-" + filesName + suffix; if (!System.IO.File.Exists(fileTxt)) { //验证文件是否存在,如果存在删除? //根据具体业务处理 //文件名称年月日时分秒基本上不会重复,后期遇到问题可以添加随机数 } foreach (var formFile in files) { if (formFile.Length > 0) { using (var stream = new FileStream(fileTxt, FileMode.Create)) { await formFile.CopyToAsync(stream); } } } } return Ok(new RtnObj { code = true, msg = "升级文件上传成功", data = "文件名称:" + id + "-" + filesName + suffix }); }