title: Preview image using Fileupload asp.net mvc and Jquery
body: <p>I am trying to preview an image that the user is trying to upload. 
  This is the code i am using.This is working fine in all major browsers, but i am wondering if there is a better way to achieve this without using session(even though i am clearing the session ) ?
  I don't want to use Flash.</p>
  
  <pre><code>   @using (Html.BeginForm("UploadImage", "Home", FormMethod.Post, new { id = "fileuploadform", @enctype = "multipart/form-data" }))
      {
          &lt;input id="fileupload" type="file" onchange="ChangeImage()" name="files" multiple&gt;
          &lt;div id="preview"&gt;
              &lt;img src="#" id="imgThumbnail" alt="preview" /&gt;
          &lt;/div&gt;
  
      }
              &lt;script&gt;
              $(function ChangeImage() {
                  $('#fileuploadform').fileupload({
                      done: function (e, data) {
                          var d = new Date();
                          $('#imgThumbnail')[0].src = "/Home/ImageLoad?a=" + d.getTime();
                      }
                  });
              });
          &lt;/script&gt;
  
  [HttpPost]
  public ActionResult UploadImage(IEnumerable&lt;HttpPostedFileBase&gt; files, PostViewModel model)
  {
  
      Session["ContentLength"] = Request.Files[0].ContentLength;
      Session["ContentType"] = Request.Files[0].ContentType;
      byte[] b = new byte[Request.Files[0].ContentLength];
      Request.Files[0].InputStream.Read(b, 0, Request.Files[0].ContentLength);
      Session["ContentStream"] = b;
      return Content(Request.Files[0].ContentType + ";" + Request.Files[0].ContentLength);
  }
  
     public ActionResult ImageLoad(int? id)
      {
          byte[] b = (byte[])Session["ContentStream"];
          int length = (int)Session["ContentLength"];
          string type = (string)Session["ContentType"];
          Session["ContentLength"] = null;
          Session["ContentType"] = null;
          Session["ContentStream"] = null;
          return File(b, type);
      }
  </code></pre>