asp.net core mvc实现文件上传实例

发布时间 - 2026-01-10 22:12:49    点击率:

工作用到文件上传的功能,在这个分享下 ~~

Controller:        

public class PictureController : Controller
  {
    private IHostingEnvironment hostingEnv;

    public PictureController(IHostingEnvironment env)
    {
      this.hostingEnv = env;
    }
    // GET: /<controller>/
    public IActionResult Index()
    {
      return View();
    }
    public IActionResult UploadFiles()
    {
      return View();
    }
    [HttpPost]
    public IActionResult UploadFiles(IList<IFormFile> files)
    {
      long size = 0;
      foreach (var file in files)
      {
        var filename = ContentDispositionHeaderValue
                .Parse(file.ContentDisposition)
                .FileName
                .Trim('"');
        //这个hostingEnv.WebRootPath就是要存的地址可以改下
        filename = hostingEnv.WebRootPath + $@"\{filename}";
        size += file.Length;
        using (FileStream fs = System.IO.File.Create(filename))
        {
          file.CopyTo(fs);
          fs.Flush();
        }
      }
      ViewBag.Message = $"{files.Count} file(s) /{ size}bytes uploaded successfully!";
       return View();
    }

  }

view:

<form asp-action="UploadFiles"
         asp-controller="Picture"
         method="post"
         enctype="multipart/form-data">
        <input type="file" name="files" multiple />
        <input type="submit" value="Upload Selected Files" />
 </form>

文件是上传到wwwroot目录文件下的,这我也看不太懂还在学习,欢迎大家交流~~

----------------------------------------------------------------------------------------------------------

下面是jquery ajax方式上传的

post方式的action的z参数没用 因为只有一个post方式的会404错误所以又加了一个get的action

Controller: 

    public IActionResult UploadFilesAjax()
    {
      return View();
    }
    [HttpPost]
    public IActionResult UploadFilesAjax(string z) 
    {
      long size = 0;
      var files = Request.Form.Files;
      foreach (var file in files)
      {
        var filename = ContentDispositionHeaderValue
                .Parse(file.ContentDisposition)
                .FileName
                .Trim('"');
        filename = @"C:\Users\lg.HL\Desktop" + $@"\{filename}";    
        size += file.Length;
        using (FileStream fs = System.IO.File.Create(filename))
        {
          file.CopyTo(fs);
          fs.Flush();
        }
      }
      string message = $"{files.Count} file(s) / { size}bytes uploaded successfully!";
        return Json(message);
    }

view

<form method="post" enctype="multipart/form-data">
      <input type="file" id="files"
          name="files" multiple />
      <input type="button"
          id="upload"
          value="Upload Selected Files" />
 </form>

jquery

<script type="text/javascript">
    $(document).ready(function () {
      $("#upload").click(function (evt) {
        var fileUpload = $("#files").get(0);
        var files = fileUpload.files;
        var data = new FormData();
        for (var i = 0; i < files.length ; i++) {
          data.append(files[i].name, files[i]);
        }
        $.ajax({
          type: "POST",
          url: "/Picture/UploadFilesAjax",
          contentType: false,
          processData: false,
          data: data,
          success: function (message) {
            alert(message);
          },
          error: function () {
            alert("There was error uploading files!");
          }
        });
      });
    });
</script>

欢迎大家交流~ 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# asp.net  # mvc  # 上传文件  # core  # 上传  # asp.net core实现文件上传功能  # ASP.NET Core文件上传与下载实例(多种上传方式)  # 解决ASP.NET Core Mvc文件上传限制问题实例  # ASP.NET Core单文件和多文件上传并保存到服务端的方法  # asp.net core集成kindeditor实现图片上传功能  # asp.net core分块上传文件示例  # ASP.NET Core实现文件上传和下载  # ASP.NET Core实现多文件上传  # ASP.NET Core上传文件到minio的实现示例  # 欢迎大家  # 在这个  # 还在  # 只有一个  # 也看  # 大家多多  # 不太懂  # 这我  # 文件上传  # Trim  # FileName  # ContentDisposition  # FileStream  # Length  # WebRootPath  # file  # var  # foreach  # Parse 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何用VPS主机快速搭建个人网站?  高端建站如何打造兼具美学与转化的品牌官网?  Java解压缩zip - 解压缩多个文件或文件夹实例  如何在建站之星网店版论坛获取技术支持?  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  Laravel distinct去重查询_Laravel Eloquent去重方法  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  b2c电商网站制作流程,b2c水平综合的电商平台?  网站建设整体流程解析,建站其实很容易!  JavaScript模板引擎Template.js使用详解  Laravel如何实现多对多模型关联?(Eloquent教程)  网站制作免费,什么网站能看正片电影?  在Oracle关闭情况下如何修改spfile的参数  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  如何快速搭建高效香港服务器网站?  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  如何挑选最适合建站的高性能VPS主机?  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  如何快速搭建二级域名独立网站?  大型企业网站制作流程,做网站需要注册公司吗?  5种Android数据存储方式汇总  如何快速搭建自助建站会员专属系统?  JavaScript Ajax实现异步通信  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  怎么用AI帮你设计一套个性化的手机App图标?  为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  新三国志曹操传主线渭水交兵攻略  教你用AI润色文章,让你的文字表达更专业  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  Laravel如何配置任务调度?(Cron Job示例)  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  详解jQuery中基本的动画方法  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  昵图网官方站入口 昵图网素材图库官网入口  深入理解Android中的xmlns:tools属性  如何基于云服务器快速搭建网站及云盘系统?  在线制作视频网站免费,都有哪些好的动漫网站?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  简历在线制作网站免费版,如何创建个人简历?  Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】  如何在 React 中条件性地遍历数组并渲染元素