当前位置: 首页 > 编程笔记 >

C# 最齐全的上传图片方法

陆城
2023-03-14
本文向大家介绍C# 最齐全的上传图片方法,包括了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的大小!");
    }
  }

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持小牛知识库!

 类似资料:
  • 我在SO和其他tuts中看了很多帖子,但我无法得到任何最新的官方或其他帖子,其中不包含任何关于使用排球上传多个图片的不推荐代码。我了解了Apache HTTP客户端删除和新android M中的相关内容,所以更喜欢使用下面的内容。

  • 本文向大家介绍c#图片上传和显示的实现方法,包括了c#图片上传和显示的实现方法的使用技巧和注意事项,需要的朋友参考一下 由于需要图片上传的功能,所以花了一些时间网上找相关资料终于搞定,效果图如下: 下面的是解决方案截图和上传的图片截图: 具体实现代码如下: 1.界面代码 2.后台代码UploadPic.aspx.cs 3.最后防止上传大文件图片时报错,配置文件添加配置Web.config 以上就是

  • 本文向大家介绍C#使用Socket上传并保存图片的方法,包括了C#使用Socket上传并保存图片的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#使用Socket上传并保存图片的方法。分享给大家供大家参考。具分析如下: 使用string filename = openFile.FileName;即返回带全路径的文件名 Path.GetFileNameWithoutExtension

  • 本文向大家介绍C#实现图片上传与浏览切换的方法,包括了C#实现图片上传与浏览切换的方法的使用技巧和注意事项,需要的朋友参考一下 本文以一个完整实例讲述了C#实现图片上传与浏览切换的方法,对于进行C#程序设计来说具有一定的借鉴价值。分享给大家供大家参考。 具体实现代码如下: 希望本文实例对大家的C#程序设计有所帮助。

  • 上传证件照片。支持 jpeg、jpg、bmp、png 格式,图片大小不超过2M。 // $path string 图片路径 $response = $app->media->upload($path);

  • 本文向大家介绍Angular下H5上传图片的方法(可多张上传),包括了Angular下H5上传图片的方法(可多张上传)的使用技巧和注意事项,需要的朋友参考一下 最近做的项目中用到了angular下上传图片功能,在做的过程中遇到了许多问题,最终都得以解决 angular上传时和普通上传时过程差不多,只不过是要不一些东西转化为angular的东西。 1.ng-file-select,指令angular