我有一个简单的表格:
@using (Html.BeginForm(null, null, FormMethod.Post, new { enctype="multipart/form-data" }))
{
<input type="file" name="image" />
<br />
<input type="submit" value="Upload" />
}
我要发布到:
[HttpPost]
public ActionResult Upload(HttpPostedFileBase file)
{
if (file.ContentLength > 0)
{
// All necessary validation logic here
}
return RedirectToAction("Index");
}
我正在尝试将上传的文件限制为 jpeg、png 和 gif 格式。我无法限制上传图像的最小和最大宽度和高度以及图像文件大小。
我想我可以通过简单地将if
语句更改为:
if (file.ContentLength > 0 && file.ContentLength < maxUploadSize)
我知道如何检查上传文件的扩展名,但我更愿意检查它的 mime-type/header。
问题:
鉴于上面的示例代码,我如何正确验证上传的文件?我想确保该文件是:
- JPEG、GIF 或 PNG 文件(检查文件扩展名和文件头)
- 不大于最大上传大小(文件大小)
- 预定义限制内的尺寸(宽度/高度)