十七、.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 });
}

浙公网安备 33010602011771号