该案例是mvc下的demo,支持单张图片上传。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
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));
}
|
一般处理程序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
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的大小!"
);
}
}
|