首页 > 编程 > .NET > 正文

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

2024-07-10 13:31:53
字体:
来源:转载
供稿:网友

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

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>

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


注:相关教程知识阅读请移步到ASP.NET教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表