@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 id="uploadForm" lay-filter="example" action="" class="layui-form"> <div class="layui-form-item" style="display:none" > <label class="layui-form-label">TID</label> <div class="layui-input-block"> <input type="text" name="TypeID" id="TypeID" lay-verify="TypeID" autocomplete="off" placeholder="隐藏ID" class="layui-input"> </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" /> <input class="layui-btn" type="button" onclick="doUpload()" value="上传"> </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 src="~/lib/jquery/dist/jquery.js"></script> <script> layui.use(['form', 'layer', 'laydate'], function () { var form = layui.form , $ = layui.jquery , layer = layui.layer; //表单初始赋值 form.val('example', { "TypeID": '@Model.TypeID' }); }); function doUpload() { var formData = new FormData($("#uploadForm")[0]); var typeid = $("#TypeID").val(); alert(typeid); $.ajax({ url: "/api/EnvironUpgrade/FileSaveByjs?typeId=" +typeid, type: 'POST', data: formData, async: false, cache: false, contentType: false, processData: false, success: function (data) { var index = parent.layer.getFrameIndex(window.name); if (data.code) { parent.layer.msg(data.msg, { icon: 1, time: 2000 }, function () { parent.layer.close(index); window.parent.location.reload(); }); } else { parent.layer.msg(data.msg, { icon: 2, time: 2000 }, function () { if (data.data) { window.parent.location.href = data.data; } }); } }, error: function (returndata) { //alert(returndata); } }); } </script> </body> </html>
控制器方法
[HttpPost] public async Task<IActionResult> FileSaveByjs([FromQuery] string typeId) { if(string.IsNullOrEmpty(typeId)|| typeId == "0") { return Ok(new RtnObj { code = false, msg = "升级文件上传失败,未找到文件", data = "" }); } string filesName = DateTime.Now.ToString("yyyyMMddhhmmss"); var files = Request.Form.Files; if (files.Count == 0) { return Ok(new RtnObj { code = false, msg = "升级文件上传失败,未找到文件", data = "" }); } IFormFile file = files as IFormFile; long size = files.Sum(f => f.Length); string webRootPath = _webHostEnvironment.WebRootPath; string folder = webRootPath + "\\FileUpload\\UpgradeFile\\" + typeId; if (!Directory.Exists(folder)) { Directory.CreateDirectory(folder); } foreach (var formFile in files) { if (formFile.Length > 0) { string fileExt = formFile.FileName; string suffix = System.IO.Path.GetExtension(fileExt); long fileSize = formFile.Length; //获得文件大小,以字节为单位 string newFileName = filesName + suffix; //随机生成新的文件名 var filePath = folder + "\\" + newFileName; using (var stream = new FileStream(filePath, FileMode.Create)) { await formFile.CopyToAsync(stream); } } } return Ok(new RtnObj { code = true, msg = "升级文件上传成功", data = "" }); }