ユーザーがhtmlフォームで画像をアップロードできるようにしようとしていますが、モデルにbyte []として保存したいと思います(dbに保存されます)byte[]の代わりに他のものを使用する必要がない限り?
これは私のフォームがどのように見えるかです
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>ImageUploadModel</legend>
@Html.DisplayFor(model => model.Image)
<input type="file" name="Image" id="Image" accept="image/*" />
@Html.DisplayFor(model => model.Caption)
@Html.EditorFor(model => model.Caption)
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
これが私のコントローラーが今どのように見えるかです
[HttpPost]
public ActionResult Create(ImageUploadModel model)
{
// do stuff
return View();
}
そして、これが私のImageUploadModelの外観です
public class ImageUploadModel
{
public Guid UploadedBy { get; set; }
[Display(Name = "Image")]
public byte[] Image { get; set; }
[Display(Name = "Image Caption")]
public string Caption { get; set; }
}
ファイルをアップロードしようとすると、有効なbase64stringではないというエラーが表示されます。
MVC4 / C#でアップロードされたファイルをbyte[]として取得する適切な方法は何ですか
ありがとう