在MVC和api中接收图片都要用到request
1.MVC用的是 HttpPostedFileBase flogo = Request.Files["file"];通过Request.Files["file"]直接获取name为file的表单数据流
上传方式是
1>首先再view层根目录建一个upload文件夹
2>判断文件格式长度并上传(现在只能判断jpg和png可添加注意全部小写)
HttpPostedFileBase flogo = Request.Files["file"];
if (flogo.ContentLength != 0)
{ string name = flogo.FileName; //获取后缀名 string namejpg = Path.GetExtension(name).ToLower(); if (namejpg != ".jpg" && namejpg != ".png" && flogo.ContentLength > 0) { error = "图片格式错误"; return false; } //获取上传的路径 string path = Server.MapPath("../upload/"); //生成一个新的文件名 string gid = System.Guid.NewGuid().ToString(); string newname = gid + namejpg; //上传 flogo.SaveAs(path + newname); }
2.在api中则通过 HttpPostedFile avatar = HttpContext.Current.Request.Files["file"];来获取
上传方式是
1>和mvc相同首先再view层根目录建一个upload文件夹
2>判断文件格式长度并上传
string[] LimitPictureType = { ".JPG", ".JPEG", ".GIF", ".PNG", ".BMP" };
if (avatar!=null&&avatar.ContentLength > 0)
{
string name = avatar.FileName;
//获取后缀名
string namejpg = Path.GetExtension(name).ToUpper();
//判断是否符合要求
if (!LimitPictureType.Contains(namejpg) && avatar.ContentLength > 0)
{
return new { state = true, errorMessage = "图片格式错误" };
}
//获取上传的路径
string path = System.Web.Hosting.HostingEnvironment.MapPath($"/upload/");
//生成一个新的文件名
string gid = System.Guid.NewGuid().ToString();
string newname = gid + namejpg;
//上传
avatar.SaveAs(path + newname);
}