1

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.TotalBytesRequest.ContentLength

よろしく、 alenan13

4

0 に答える 0