1. 程式人生 > >.Net MVC 圖片上傳

.Net MVC 圖片上傳

一般處理程序 win ati flag coo 我們 substr 上傳 style

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

 1 public ActionResult Upload()
 2         {
 3             string imgurl = "";
 4             foreach (string key in Request.Files)
 5             {
 6                 //這裏只測試上傳第一張圖片file[0]
 7                 HttpPostedFileBase file0 = Request.Files[key];
 8 
 9                 //
轉換成byte,讀取圖片MIME類型 10 Stream stream; 11 int size = file0.ContentLength / 1024; //文件大小KB 12 13 if (size > 1024) 14 { 15 return Content(ReturnMsg(Enum_Return.失敗, "圖片不能超過1M:", null)); 16 } 17 18
byte[] fileByte = new byte[2];//contentLength,這裏我們只讀取文件長度的前兩位用於判斷就好了,這樣速度比較快,剩下的也用不到。 19 stream = file0.InputStream; 20 stream.Read(fileByte, 0, 2);//contentLength,還是取前兩位 21 22 //獲取圖片寬和高 23 //System.Drawing.Image image = System.Drawing.Image.FromStream(stream);
24 //int width = image.Width; 25 //int height = image.Height; 26 27 28 string fileFlag = ""; 29 if (fileByte != null && fileByte.Length > 0)//圖片數據是否為空 30 { 31 fileFlag = fileByte[0].ToString() fileByte[1].ToString(); 32 } 33 string[] fileTypeStr = { "255216", "7173", "6677", "13780" };//對應的圖片格式jpg,gif,bmp,png 34 if (fileTypeStr.Contains(fileFlag)) 35 { 36 string action = Request["action"]; 37 string path = "/uploads/"; 38 switch (action) 39 { 40 case "headimage": 41 path = "headimage/"; 42 break; 43 case "blogtype": 44 path = "blogtype/"; 45 break; 46 } 47 string fullpath = path UserInfo.userID "/"; 48 if (!Directory.Exists(Server.MapPath(fullpath))) 49 { 50 Directory.CreateDirectory(Server.MapPath(fullpath)); 51 } 52 53 54 Request.Files[key].SaveAs(Server.MapPath(fullpath Request.Files[key].FileName)); 55 imgurl = fullpath Request.Files[key].FileName; 56 } 57 else 58 { 59 return Content(ReturnMsg(Enum_Return.失敗, "圖片格式不正確:" fileFlag, null)); 60 } 61 62 stream.Close(); 63 } 64 65 return Content(ReturnMsg(Enum_Return.成功, "上傳成功", imgurl)); 66 }

一般處理程序

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的大小!");
        }
    }

.Net MVC 圖片上傳