Entity Framework を使用して、(ファイルから、png
またはから)画像をデータベースに保存したいと考えています。jpg
私のコードはここにあります:
[HttpPost]
public ActionResult Create(Food fd)
{
try
{
FoodOrderEntities fo = new FoodOrderEntities();
Stream inpStream = Request.InputStream;
Int32 length = Convert.ToInt32(inpStream.Length);
byte[] tempImage = new byte[length];
inpStream.Read(tempImage, 0, length);
//FoodImage is an image field in the datatable, mapped by the Entity Framework
fd.FoodImage = tempImage;
fo.AddToFood(fd);
fo.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View();
}
}
私の見解は次のとおりです。
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Create</h2>
<% using (Html.BeginForm("Create","Food",FormMethod.Post,new {enctype="multipart/form-data"})) {%>
<%: Html.ValidationSummary(true) %>
<fieldset>
<legend>Fields</legend>
<div class="editor-label">
<%: Html.LabelFor(model => model.FoodName) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.FoodName) %>
<%: Html.ValidationMessageFor(model => model.FoodName) %>
</div>
<div>
Select a file: <input type="file" name="fileUpload" />
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
<% } %>
<div>
<%: Html.ActionLink("Back to List", "Index") %>
</div>
</asp:Content>
しかし、使用するRequest.Files["fileUpload"]
と null しか取得できませんでした。次に、このコードを使用しましたが、画像から 124 バイトしか取得できませんでした。代わりにandinpStream.Length
を使用しましたが、結果は同じです。私を助けてください!前もって感謝します。Request.TotalBytes
Request.ContentLength
よろしく、 alenan13