ASP.NET MVC 4 – Session + Plupload – Queue Widget ( NuGet ) 方法

ASP.NET MVC 4 – Session + Plupload – Queue Widget ( NuGet ) 方法

   /Controllers/PluploadController.cs
 
   using System;
   using System.Collections.Generic;
   using System.Linq;
   using System.Web;
   using System.Web.Mvc;
 
   namespace CRMPortal.Controllers
   {
      public class PluploadController : Controller
      {
 
         … …
 
         public ActionResult DocForm()
         {
            return View();
         }
 
         public ActionResult DocUpload(FormCollection collection, HttpPostedFileBase file)
         {
            List<String> list;
 
            if (collection != null && file != null)
            {
 
               if (System.Web.HttpContext.Current.Session["_SessionDocFile"] != null)
                  list = System.Web.HttpContext.Current.Session["_SessionDocFile"] as List<String>;
               else
                  list = new List<string>();
 
               list.Add(collection["name"]);
 
               file.SaveAs(Server.MapPath("~/Images/plupload/") + file.FileName);
               System.Web.HttpContext.Current.Session["_SessionDocFile"] = list;
 
            }
 
            return View();
         }
 
         public ActionResult DocResult()
         {
            List<String> list = System.Web.HttpContext.Current.Session["_SessionDocFile"] as List<String>;
            System.Web.HttpContext.Current.Session["_SessionDocFile"] = null;
 
            return View(list);
         }
 
      }
   }
 
   /Views/Plupload/DocForm.cshtml
 
   <link type="text/css" rel="stylesheet" href="/Scripts/plupload/jquery.plupload.queue/css/jquery.plupload.queue.css" media="screen" />
 
   <script type="text/javascript" src="/Scripts/jquery-1.8.2.min.js" charset="UTF-8"></script>
   <script type="text/javascript" src="/Scripts/plupload/plupload.full.min.js" charset="UTF-8"></script>
   <script type="text/javascript" src="/Scripts/plupload/jquery.plupload.queue/jquery.plupload.queue.min.js" charset="UTF-8"></script>
 
   <div id="uploader">
      <p>Your browser doesn’t have Flash, Silverlight or HTML5 support.</p>
   </div>
 
   <script type="text/javascript">
 
      $(function () {
         $("#uploader").pluploadQueue({
            runtimes: "html5,silverlight,flash,html4",
            url: "/Plupload/DocUpload",
            chunk_size: "1mb",
            rename: true,
            dragdrop: true,
            filters: {
               max_file_size: "10mb",
               mime_types: [
                  { title: "Image files", extensions: "jpg,gif,png" },
                  { title: "Zip files", extensions: "zip" }
               ]
            },
            resize: { width: 320, height: 240, quality: 90 },
            init: {
               UploadComplete: function () {
                  window.location = "@(Url.Action("DocResult"))";
               }
            },
            flash_swf_url: "/Scripts/plupload/Moxie.swf",
            silverlight_xap_url: "/Scripts/plupload/Moxie.xap"
         });
      });
 
   </script>
 
   /Views/Plupload/DocUpload.cshtml
 

 

   /Views/Plupload/DocResult.cshtml
 
   @model List<String>
   @{
   }
 
   <h2>Document Result</h2>
 
   @foreach (String item in Model)
   {
      <div>@(item)</div>
   }