• MVC文件上传03-使用Request.Files上传多个文件


    本篇体验在控制器方法中使用controllerContext.HttpContext.Request.Files上传多个文件。兄弟篇为:

    MVC文件上传01-使用jquery异步上传并客户端验证类型和大小       
    MVC文件上传02-使用HttpPostedFileBase上传多个文件     

     

    □ 控制器

       1:  using System;
       2:  using System.Collections.Generic;
       3:  using System.IO;
       4:  using System.Linq;
       5:  using System.Web;
       6:  using System.Web.Mvc;
       7:   
       8:  namespace MvcApplication2.Controllers
       9:  {
      10:      public class HomeController : Controller
      11:      {
      12:          public ActionResult Index()
      13:          {
      14:              return View();
      15:          }
      16:   
      17:          public ActionResult FileUploads()
      18:          {
      19:              string pathForSaving = Server.MapPath("~/Uploads");
      20:              if (this.CreateFolderIfNeeded(pathForSaving))
      21:              {
      22:                  foreach (string file in Request.Files)
      23:                  {
      24:                      HttpPostedFileBase uploadFile = Request.Files[file] as HttpPostedFileBase;
      25:                      if (uploadFile != null && uploadFile.ContentLength > 0)
      26:                      {
      27:                          var path = Path.Combine(pathForSaving, uploadFile.FileName);
      28:                          uploadFile.SaveAs(path);
      29:                      }
      30:                  }
      31:              }
      32:              return RedirectToAction("Index");
      33:          }
      34:   
      35:          // 检查是否要创建上传文件夹
      36:          private bool CreateFolderIfNeeded(string path)
      37:          {
      38:              bool result = true;
      39:              if (!Directory.Exists(path))
      40:              {
      41:                  try
      42:                  {
      43:                      Directory.CreateDirectory(path);
      44:                  }
      45:                  catch (Exception)
      46:                  {
      47:                      //TODO:处理异常
      48:                      result = false;
      49:                  }
      50:              }
      51:              return result;
      52:          }
      53:      }
      54:  }

     

    □ Home/Index.cshtml视图

       1:  @{
       2:      ViewBag.Title = "Index";
       3:      Layout = "~/Views/Shared/_Layout.cshtml";
       4:  }
       5:   
       6:  @using (Html.BeginForm("FileUploads", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
       7:  {
       8:      <input type="file" name="files1" id="file1" /><br/>
       9:      <input type="file" name="files2" id="file2" /><br/>
      10:      <input type="file" name="files3" id="file3" /><br/>
      11:      <input type="submit" value="同时上传多个文件" />
      12:  }


    注意:
    name属性值可以不同

     

    参考资料

    ASP.NET MVC - 不使用HttpPostedFileBase 处理文件上传

  • 相关阅读:
    游标
    Linq to Sql学习
    在asp.net mvc中使用Uploadify上传文件
    Linq 笔记
    ASP.NET MVC笔记
    转:ASP.NET MVC:窗体身份验证及角色权限管理示例
    PowerDesigner
    asp.net缓存使用总结
    Bash Shell中命令行选项/参数处理
    Javascript parseFloat、parseDouble类型转换,数值加减,四舍五入
  • 原文地址:https://www.cnblogs.com/darrenji/p/3615012.html
Copyright © 2020-2023  润新知