博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

net core上传文件

Posted on 2022-09-28 16:52  火冰·瓶  阅读(13)  评论(0编辑  收藏  举报
<input type="file" id="avatar" name="avatar">
<button type="button">保存</button>

  

('button').click(function(){
 var files = $('#avatar').prop('files'); //多个
 //或者
 var files = $('#avatar')[0].files[0] //单个
 
 var data = new FormData();
 data.append('avatar', files[0]);
 
 $.ajax({
  url: '/api/upload',
  type: 'POST',
  data: data,
  cache: false,
  processData: false,
  contentType: false
 });
});

 

 或

 

            <input type="file" id="input_upload_file" onchange="uploadFun(event)" accept=".xls, .xlsx" style="display:none;" />
            <button id="btn_upload_file" class="btn btn-success btn-sm">
                <i class="fa fa-file-excel-o" aria-hidden="true"></i>
                上传excel
            </button>

  

            $('#btn_upload_file').click(function () {
                $('#input_upload_file').click();
            });


        var uploadFun = function (evt) {
            var files = evt.target.files;
            var file = files[0];
            console.log(file == null ? "" : file.name);

            var data = new FormData();
            data.append('excel', files[0]);
            $.ajax({
                url: '/api/upload',
                type: 'POST',
                data: data,
                cache: false,
                processData: false,
                contentType: false,
                success: (result) => {
                    if (result) tableData.ajax.reload();
                    else alert("出错了,请联系管理员");
                }
            });

        }

  

 

服务端

  public string UploadExcel([FromForm] IFormCollection formCollection) 
        {
            String result = "Fail";
            if (formCollection.ContainsKey("user"))
            {
                var user = formCollection["user"];
            }
            FormFileCollection fileCollection = (FormFileCollection)formCollection.Files;
            foreach (IFormFile file in fileCollection)
            {
                StreamReader reader = new StreamReader(file.OpenReadStream());
                String content = reader.ReadToEnd();
                String name = file.FileName;
                String filename = @"D:/Test/" + name;
                if (System.IO.File.Exists(filename))
                {
                    System.IO.File.Delete(filename);
                }
                using (FileStream fs = System.IO.File.Create(filename))
                {
                    // 复制文件
                    file.CopyTo(fs);
                    // 清空缓冲区数据
                    fs.Flush();
                }
                result = "Success";
            }           
            return result;            
        }

  或

  /// <summary>
        /// 事件上传
        /// </summary>
        /// <param name="file">文件信息</param>
        /// <param name="Id">Id</param>
        /// <returns></returns>
        [HttpPost]
        [DisableRequestSizeLimit]
        public async Task<IActionResult> EventUpload(IFormFile file, int Id)
        {
            if (file == null)
            {
                return Ok(new { code="201",msg= "请上传文件" });
            }
            var fileExtension = Path.GetExtension(file.FileName);
            if (fileExtension == null)
            {
                return Ok(new { code = "201", msg = "文件无后缀信息" });
            }
            long length = file.Length;
            if (length > 1024 * 1024 * 300) //200M
            {
                return Ok(new { code = "201", msg = "上传文件不能超过300M" });
            }
            string Paths = Path.GetFullPath("..");          
            string guid = Guid.NewGuid().ToString();
            string stringPath = Paths + $"BufFile\\OutFiles\\DownLoadFiles\\Video\\{guid}\\";
            string filePath = $"{stringPath}";
            if (!System.IO.Directory.Exists(filePath))
            {
                Directory.CreateDirectory(filePath);
            }
            var saveName = filePath + file.FileName;
           
            using (FileStream fs = System.IO.File.Create(saveName))
            {
                await file.CopyToAsync(fs);
                fs.Flush();
            }
            return  Ok(new { code = "201", msg = "上传成功" });
        }