欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C# 最齊全的上傳圖片方法

 更新時間:2017年01月22日 08:56:14   作者:先修客  
本文主要介紹了C# 最齊全的上傳圖片方法,方法里包括了圖片大小限制、圖片尺寸、文件內(nèi)容等等的判斷。具有很好的參考價值,下面跟著小編一起來看下吧

方法里包括了圖片大小限制、圖片尺寸、文件內(nèi)容等等的判斷。。。

該案例是mvc下的demo,支持單張圖片上傳。

public ActionResult Upload()
    {
      string imgurl = "";
      foreach (string key in Request.Files)
      {
        //這里只測試上傳第一張圖片file[0]
        HttpPostedFileBase file0 = Request.Files[key];
        //轉(zhuǎn)換成byte,讀取圖片MIME類型
        Stream stream;
        int size = file0.ContentLength / 1024; //文件大小KB
        if (size > 1024)
        {
          return Content(ReturnMsg(Enum_Return.失敗, "圖片不能超過1M:", null));
        }
        byte[] fileByte = new byte[2];//contentLength,這里我們只讀取文件長度的前兩位用于判斷就好了,這樣速度比較快,剩下的也用不到。
        stream = file0.InputStream;
       stream.Read(fileByte, 0, 2);//contentLength,還是取前兩位
        //獲取圖片寬和高
        //System.Drawing.Image image = System.Drawing.Image.FromStream(stream);
        //int width = image.Width;
        //int height = image.Height;
        string fileFlag = "";
        if (fileByte != null && fileByte.Length > 0)//圖片數(shù)據(jù)是否為空
        {
          fileFlag = fileByte[0].ToString()  fileByte[1].ToString();
        }
        string[] fileTypeStr = { "255216", "7173", "6677", "13780" };//對應(yīng)的圖片格式j(luò)pg,gif,bmp,png
        if (fileTypeStr.Contains(fileFlag))
        {
          string action = Request["action"];
          string path = "/uploads/";
          switch (action)
          {
            case "headimage":
              path  = "headimage/";
              break;
            case "blogtype":
              path  = "blogtype/";
              break;
          }
          string fullpath = path  UserInfo.userID  "/";
          if (!Directory.Exists(Server.MapPath(fullpath)))
          {
            Directory.CreateDirectory(Server.MapPath(fullpath));
          }
          Request.Files[key].SaveAs(Server.MapPath(fullpath  Request.Files[key].FileName));
          imgurl = fullpath  Request.Files[key].FileName;
        }
        else
        {
          return Content(ReturnMsg(Enum_Return.失敗, "圖片格式不正確:" fileFlag, null));
        }
        stream.Close();
      }
      return Content(ReturnMsg(Enum_Return.成功, "上傳成功", imgurl));
    }

一般處理程序

public void ProcessRequest(HttpContext context)
  {
    context.Response.ContentType = "application/json";
    HttpPostedFile _upfile = context.Request.Files["File"];
    if (_upfile.ContentLength < 500000)
    {
      if (string.IsNullOrEmpty(_upfile.FileName))
      {
         context.Response.Write("請上傳圖片");
      }
      string fileFullname = _upfile.FileName;
      string dataName = DateTime.Now.ToString("yyyyMMddhhmmss");
      string fileName = fileFullname.Substring(fileFullname.LastIndexOf("\\")  1);
      string type = fileFullname.Substring(fileFullname.LastIndexOf(".")  1);
      if (type == "bmp" || type == "jpg" || type == "gif" || type == "JPG" || type == "BMP" || type == "GIF")
      {
        _upfile.SaveAs(HttpContext.Current.Server.MapPath("photo")  "\\"  dataName  "."  type);
        HttpCookie cookie = new HttpCookie("photo");
        context.Response.Write("上傳成功");
      }
      else
      {
        context.Response.Write("支持格式:|jpg|gif|bmp|");
      }
    }
    else
    {
      context.Response.Write("你的圖片已經(jīng)超過500K的大??!");
    }
  }

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

相關(guān)文章

  • C# 使用AE獲取feature的屬性及字段操作

    C# 使用AE獲取feature的屬性及字段操作

    這篇文章主要介紹了C# 使用AE獲取feature的屬性及字段操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • C#類的多態(tài)性詳解

    C#類的多態(tài)性詳解

    這篇文章主要為大家詳細(xì)介紹了C#類的多態(tài)性,主要有兩種:一是編譯時的多態(tài)性,二是運行時的多態(tài)性,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2015-10-10
  • C#獲取路由器外網(wǎng)IP,MAC地址的實現(xiàn)代碼

    C#獲取路由器外網(wǎng)IP,MAC地址的實現(xiàn)代碼

    這篇文章主要介紹了C#獲取路由器外網(wǎng)IP,MAC地址的實現(xiàn)代碼,需要的朋友可以參考下
    2016-11-11
  • 深入C#字符串和享元(Flyweight)模式的使用分析

    深入C#字符串和享元(Flyweight)模式的使用分析

    本篇文章是對C#字符串與享元(Flyweight)模式的使用進行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C#實現(xiàn)多個計時器記錄不同定時時間

    C#實現(xiàn)多個計時器記錄不同定時時間

    這篇文章主要為大家詳細(xì)介紹了C#實現(xiàn)多個計時器記錄不同定時時間,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • C#中四種定時器的用法詳解

    C#中四種定時器的用法詳解

    日常項目開發(fā)中,很多時候都需要用到定時器來處理一些問題,那么c#中各種定時器應(yīng)該怎么用呢?下面來簡單介紹下C#中4種定時器的使用方法說明,感興趣的朋友可以參考下
    2024-04-04
  • C#?二進制序列化和反序列化的具體實現(xiàn)

    C#?二進制序列化和反序列化的具體實現(xiàn)

    本文主要介紹了C#?二進制序列化和反序列化的具體實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • C#創(chuàng)建安全的字典(Dictionary)存儲結(jié)構(gòu)

    C#創(chuàng)建安全的字典(Dictionary)存儲結(jié)構(gòu)

    本文主要對存儲結(jié)構(gòu)字典(Dictionary)的一些常用方法進行簡單的說明,并闡述了如何創(chuàng)建安全的字典(Dictionary)存儲結(jié)構(gòu)。希望對大家有所幫助
    2016-12-12
  • C#使用Consul集群進行服務(wù)注冊與發(fā)現(xiàn)

    C#使用Consul集群進行服務(wù)注冊與發(fā)現(xiàn)

    這篇文章主要介紹了C#使用Consul集群進行服務(wù)注冊與發(fā)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • C#使用IronPython調(diào)用Python的實現(xiàn)

    C#使用IronPython調(diào)用Python的實現(xiàn)

    本文主要介紹了C#使用IronPython調(diào)用Python的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02

最新評論