zoukankan      html  css  js  c++  java
  • 上传控件FineUploader后台获取文件对象实例

    public virtual ActionResult AsyncUpload()
    {
      //we process it distinct ways based on a browser
      //find more info here http://stackoverflow.com/questions/4884920/mvc3-valums-ajax-file-upload
      Stream stream = null;
      var fileName = "";
      var contentType = "";
      if (String.IsNullOrEmpty(Request["qqfile"]))
      {
        // IE
        HttpPostedFileBase httpPostedFile = Request.Files[0];
        if (httpPostedFile == null)
          throw new ArgumentException("No file uploaded");
        stream = httpPostedFile.InputStream;
        fileName = Path.GetFileName(httpPostedFile.FileName);
        contentType = httpPostedFile.ContentType;
      }
      else
      {
        //Webkit, Mozilla
        stream = Request.InputStream;
        fileName = Request["qqfile"];
      }
    
      var fileBinary = new byte[stream.Length];
      stream.Read(fileBinary, 0, fileBinary.Length);
    
      var fileExtension = Path.GetExtension(fileName);
      if (!String.IsNullOrEmpty(fileExtension))
        fileExtension = fileExtension.ToLowerInvariant();
    
      var download = new Download
      {
        DownloadGuid = Guid.NewGuid(),
        UseDownloadUrl = false,
        DownloadUrl = "",
        DownloadBinary = fileBinary,
        ContentType = contentType,
        //we store filename without extension for downloads
        Filename = Path.GetFileNameWithoutExtension(fileName),
        Extension = fileExtension,
        IsNew = true
      };
      _downloadService.InsertDownload(download);
    
      //when returning JSON the mime-type must be set to text/plain
      //otherwise some browsers will pop-up a "Save As" dialog.
      return Json(new { success = true, 
      downloadId = download.Id, 
      downloadUrl = Url.Action("DownloadFile", new { downloadGuid= download.DownloadGuid }) },
      MimeTypes.TextPlain);
    }
  • 相关阅读:
    快速排序(详解)
    14.linux-platform机制实现驱动层分离(详解)
    13.Linux键盘按键驱动 (详解)
    Linux-hexdump命令调试event驱动—详解(13)
    Android开发final的用法
    Android控件RecyclerView的基本用法
    搜索关键词分析——以个人博客网站为例
    java.net.SocketException: Software caused connection abort: socket write error
    Android layout属性大全
    java中 label 配合 break continue 使用方法
  • 原文地址:https://www.cnblogs.com/opts/p/8145495.html
Copyright © 2011-2022 走看看