20

ASP.NET Core(MVC 6) EF Visual Studio を使用して小さなブログに取り組んでいます。画像をデータベースに保存する方法がわかりません。について読んだことIFormfileがありますが、どうすればいいのかよくわかりません。行き詰まっています。私はこれが初めてで、少し助けていただければ幸いです。

作成中の投稿に画像を保存したい(同じフォームで)。したがって、postIDに保存したいと思います。次に、画像を表示できるようにする必要があります。どうすればよいですか?

4

3 に答える 3

15

これは、データベースに保存する必要がある場合に便利です。これはhttps://www.mikesdotnetting.com/article/259/asp-net-mvc-5-with-ef-6-working-with-filesの変更であり、k7Boys からの多くの入力がMVC 6 HttpPostedFileBase?で回答されています。

<input type="file" name="Image" id="Imageinput">

ブログ モーダル クラスには、次のような Img フィールドが必要です。

    public int BlogId{ get; set; }
    ...
    public byte[] Img{ get; set; }

コントローラ;

    public async Task<IActionResult> Create([Bind("BlogId,...Img")] Blog blog t, IFormFile Image)
    if (ModelState.IsValid)
        {
            if (Image!= null)

            {
                if (Image.Length > 0)

                //Convert Image to byte and save to database

                {

                    byte[] p1 = null;
                    using (var fs1 = Image.OpenReadStream())
                    using (var ms1 = new MemoryStream())
                    {
                        fs1.CopyTo(ms1);
                        p1 = ms1.ToArray();
                    }
                    Blog.Img= p1;

                }
            }

            _context.Add(client);
            await _context.SaveChangesAsync();

            return RedirectToAction("Index");
        }

ここに来るのに数時間かかりました。現在、ビューで画像を表示する作業を行っていますが、これは複雑ではないと確信しています。楽しみ

于 2017-08-02T21:16:12.973 に答える