当前位置: 首页 > 编程笔记 >

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

穆宾白
2023-03-14
本文向大家介绍asp.net core mvc实现文件上传实例,包括了asp.net core mvc实现文件上传实例的使用技巧和注意事项,需要的朋友参考一下

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

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>

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

 类似资料:
  • 本文向大家介绍Spring boot实现文件上传实例(多文件上传),包括了Spring boot实现文件上传实例(多文件上传)的使用技巧和注意事项,需要的朋友参考一下 文件上传主要分以下几个步骤: (1)新建maven java project; (2)在pom.xml加入相应依赖; (3)新建一个表单页面(这里使用thymleaf); (4)编写controller; (5)测试; (6)对上传

  • 本文向大家介绍Node.js实现文件上传,包括了Node.js实现文件上传的使用技巧和注意事项,需要的朋友参考一下 在工作中碰到了这样的需求,需要用nodejs 来上传文件,之前也只是知道怎么通过浏览器来上传文件, 用nodejs的话, 相当于模拟浏览器的行为。 google 了一番之后, 明白了浏览器无非就是利用http协议来给服务器传输数据, 具体协议就是《RFC 1867 - Form-ba

  • 本文向大家介绍PHP实现文件上传和多文件上传,包括了PHP实现文件上传和多文件上传的使用技巧和注意事项,需要的朋友参考一下 在PHP程序开发中,文件上传是一个使用非常普遍的功能,也是PHP程序员的必备技能之一。值得高兴的是,在PHP中实现文件上传功能要比在Java、C#等语言中简单得多。下面我们结合具体的代码实例来详细介绍如何通过PHP实现文件上传和多文件上传功能。 要使用PHP实现文件上传功能,

  • 本文向大家介绍php 多文件上传的实现实例,包括了php 多文件上传的实现实例的使用技巧和注意事项,需要的朋友参考一下 首先向大家讲解一下实现的方法。 要实现多文件上传,我们可以在form表单中添加多个input file域,然后将这些input file的name属性设置为相同的名称且使用数组的形式命名,例如filename[]。至于文件上传的php代码和单个文件上传是一样的道理。 下面看一个多

  • 本文向大家介绍PHP实现文件上传下载实例,包括了PHP实现文件上传下载实例的使用技巧和注意事项,需要的朋友参考一下 本文介绍了PHP实现文件上传与下载,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧。 一、上传原理与配置 1.1 原理 将客户端文件上传到服务器端,再将服务器端的文件(临时文件)移动到指定目录即可。 1.2 客户端配置 所需:表单页面(选择上传文件); 具体而言:发送方式