私は単純なフォームを持っています:
@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 タイプ/ヘッダーも確認したいと思います。
質問:
上記のサンプル コードの場合、アップロードされたファイルを適切に検証するにはどうすればよいですか? ファイルが次のようになっていることを確認したい:
- JPEG、GIF、または PNG ファイル (ファイル拡張子とファイル ヘッダーをチェック)
- 最大アップロード サイズ (ファイル サイズ) 以下
- 事前定義された制限内の寸法 (幅/高さ)