雷火电竞-中国电竞赛事及体育赛事平台

歡迎來到入門教程網!

C#教程

當前位置:主頁 > 軟件編程 > C#教程 >

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

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C#教程|點擊:

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

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

public ActionResult Upload()
    {
      string imgurl = "";
      foreach (string key in Request.Files)
      {
        //這里只測試上傳第一張圖片file[0]
        HttpPostedFileBase file0 = Request.Files[key];
        //轉換成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)//圖片數據是否為空
        {
          fileFlag = fileByte[0].ToString()  fileByte[1].ToString();
        }
        string[] fileTypeStr = { "255216", "7173", "6677", "13780" };//對應的圖片格式jpg,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("你的圖片已經超過500K的大小!");
    }
  }

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持我們!

上一篇:C#實現XML文檔的增刪改查功能示例

欄    目:C#教程

下一篇:C#獲取ListView鼠標下的Item實例

本文標題:C# 最齊全的上傳圖片方法

本文地址:http://www.jygsgssxh.com/a1/C_jiaocheng/5996.html

網頁制作CMS教程網絡編程軟件編程腳本語言數據庫服務器

如果侵犯了您的權利,請與我們聯系,我們將在24小時內進行處理、任何非本站因素導致的法律后果,本站均不負任何責任。

聯系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網 版權所有