• MVC文件上传05-使用客户端jQuery-File-Upload插件和服务端Backload组件自定义上传文件夹


    在零配置情况下,文件的上传文件夹是根目录下的Files文件夹,如何自定义文件的上传文件夹呢?

    MVC文件上传相关兄弟篇:

    MVC文件上传01-使用jquery异步上传并客户端验证类型和大小 
    MVC文件上传02-使用HttpPostedFileBase上传多个文件  
    MVC文件上传03-使用Request.Files上传多个文件
    MVC文件上传04-使用客户端jQuery-File-Upload插件和服务端Backload组件实现多文件异步上传  


    □ 在web.config中配置

       1:  <configuration>
       2:    <configSections>
       3:    ...
       4:    <section name="backload" type="Backload.Configuration.BackloadSection, Backload, Version=1.9.3.1, Culture=neutral, PublicKeyToken=02eaf42ab375d363" requirePermission="false" />
       5:    </configSections>
       6:    
       7:     <backload xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:name="urn:fileupload-schema" xsi:noNamespaceSchemaLocation="Web.FileUpload.xsd">
       8:      <fileSystem filesRoot="~/Uploads" />
       9:    </backload>
      10:   
      11:  </configuration>

    Version可以通过右键程序集属性中查到。

    PublicKeyToken可以通过反编译器,比如Reflector查到。

     

    □ 注销BackloadDemoController的Index方法

       1:  using System.Web.Mvc;
       2:   
       3:  namespace MvcApplication6.Controllers
       4:  {
       5:      public class BackloadDemoController : Controller
       6:      {
       7:          // GET: /BackupDemo/
       8:          //public ActionResult Index()
       9:          //{
      10:          //    return View();
      11:          //}
      12:      }
      13:  }
      14:   

    □ 让BaseController继承BackloadDemoController,并注销Index方法

       1:  using System.Web.Mvc;
       2:   
       3:  namespace MvcApplication6.Controllers
       4:  {
       5:      public class BaseController : BackloadDemoController
       6:      {
       7:          //public ActionResult Index()
       8:          //{
       9:          //    return View();
      10:          //}
      11:      }
      12:  }

    □ 让HomeController继承BaseController

       1:  using System.Web.Mvc;
       2:   
       3:  namespace MvcApplication6.Controllers
       4:  {
       5:      public class HomeController : BaseController
       6:      {
       7:          public ActionResult Index()
       8:          {
       9:              return View();
      10:          }
      11:      }
      12:  }
      13:   


    □ _Layout.cshtml视图

       1:  <!DOCTYPE html>
       2:  <html>
       3:  <head>
       4:      <meta charset="utf-8" />
       5:      <meta name="viewport" content="width=device-width" />
       6:      <title>@ViewBag.Title</title>
       7:      @Styles.Render("~/Content/css")
       8:      @Styles.Render("~/Content/themes/base/css")
       9:      @Styles.Render("~/bundles/fileupload/bootstrap/BasicPlusUI/css")
      10:      @Scripts.Render("~/bundles/modernizr")
      11:   
      12:  </head>
      13:  <body>
      14:      @RenderBody()
      15:   
      16:      @Scripts.Render("~/bundles/jquery")
      17:      @Scripts.Render("~/bundles/jqueryui")
      18:      @Scripts.Render("~/bundles/fileupload/bootstrap/BasicPlusUI/js")
      19:      @RenderSection("scripts", required: false)
      20:  </body>
      21:  </html>
      22:   


    □ Home/Index.cshtml视图

    展开

    □ 结果:

    上传2个文件:
    8

     

    这次,图片上传到了Uploads文件夹:
    9

     

    Uploads文件夹有刚上传的2个文件:
    10

    □ 如果想让web.config配置文件相对“干净”,可以把与Backload相关的配置放到单独的一个配置文件

    web.config中可以这样:

       1:  <configuration>
       2:    <configSections>
       3:    ...
       4:    <section name="backload" type="Backload.Configuration.BackloadSection, Backload, Version=1.9.3.1, Culture=neutral, PublicKeyToken=02eaf42ab375d363" requirePermission="false" />
       5:    </configSections>
       6:    
       7:     <backload configSource="Web.Backload.config" />
       8:  </configuration>

    根目录下的Web.Backload.config可以这样:

       1:  <?xml version="1.0"?>
       2:  <backload storageContext="Filesystem" xsi:noNamespaceSchemaLocation="Web.Backload.xsd" xmlns:name="urn:backload-schema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       3:    <fileSystem filesRoot="~/Uploads" />
       4:  </backload>

    参考资料:
    http://backload.org/ Backload官网
    https://github.com/blackcity/Backload#examples Backload例子
    http://nuget.org/packages/Backload/ nuget上的Backload

    http://blueimp.github.io/jQuery-File-Upload/ jQuery File Upload官网
    https://github.com/blueimp/jQuery-File-Upload/wiki  github上的jQuery File Upload介绍
    https://github.com/blueimp/jQuery-File-Upload  github上的jQuery File Upload源码

    https://www.nuget.org/packages/JQueryFileUpload_Demo_with_Backload/  下载jQuery File Upload结合Backload的MVC案例

  • 相关阅读:
    SlickEdit 中 GDB 调试时SIG32 使得无法跟踪的问题 解决方法
    ln与mount
    ubuntu12.04 的 root 用户显示 中文 和 默认显示中文的方法
    ASP.NET MVC控制器作用
    ASP.NET管道模型
    第二章MVC框架如何截获请求
    第一章MVC与WebForms处理请求的区别
    asp.net运行原理一
    一个通配符引起的错误
    关于权限
  • 原文地址:https://www.cnblogs.com/darrenji/p/3619525.html
Copyright © 2020-2023  润新知