好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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 &gt; 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 &amp;&amp; fileByte.Length &gt; 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的大小!" );

     }

   }

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

原文链接:http://HdhCmsTestcnblogs测试数据/liujiaxian/p/6336805.html

dy("nrwz");

查看更多关于C# 最齐全的上传图片方法的详细内容...

  阅读:48次