• 十八、.NetCore 上传附件(js方法)



    @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 = "" });
            }
    

      

  • 相关阅读:
    HEVC的參考队列解码
    【linux高级程序设计】(第十四章)TCP高级应用 2
    【linux高级程序设计】(第十四章)TCP高级应用
    【linux高级程序设计】(第十三章)Linux Socket网络编程基础 4
    【linux高级程序设计】(第十三章)Linux Socket网络编程基础 3
    【linux高级程序设计】(第十三章)Linux Socket网络编程基础 2
    【linux高级程序设计】(第十三章)Linux Socket网络编程基础
    【linux高级程序设计】(第十二章)Linux多线程编程 4
    【linux高级程序设计】(第十二章)Linux多线程编程 3
    【linux高级程序设计】(第十二章)Linux多线程编程 2
  • 原文地址:https://www.cnblogs.com/zhangne/p/16087041.html
Copyright © 2020-2023  润新知