1
私のコードは最初の入力画像のみを保存します。私はthis linkを見つけたので、私はどのように複数の画像を扱うことができるのか見てみましょう。MVCを使用して複数の画像をデータベースに保存
<img class="img-rounded img-responsive" src="data:image/jpg;base64,@System.Convert.ToBase64String(item.Image)" width="250" height="400" />
私は複数の画像を保存しても、それらを表示するにはどうすればよい:私はHttpPostedFileBase[]
にHttpPostedFileBase
を変更すると、私はこのような1つの画像のみを表示
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "Id,Name,Color,CategoryId,GenderId,Image")] Product product, HttpPostedFileBase image)
{
if (ModelState.IsValid)
{
byte[] imagee = null;
if (Request.Files.Count > 0)
{
image = Request.Files[0];
using (BinaryReader br = new BinaryReader(image.InputStream))
{
imagee = br.ReadBytes(image.ContentLength);
}
}
product.Image = imagee;
db.Products.Add(product);
db.SaveChanges();
return RedirectToAction("Index");
}
HttpPostedFileBase image
ためInputStream
とContentLength
を使用することはできませんか?
はあなたが_InputStreamとContentLength_を使用することはできません何を意味するのですか?なぜあなたは 'Request.Files [0]'を使っていますか?あなたのメソッドはすでにファイルのパラメータを持っています。 'IEnumerableイメージ'の場合、 'foreach(イメージ内のHtttpPostedFileBaseファイル){....' –
という意味で、 'InputStream'の定義と拡張メソッド ' 'HttpPostedFileBase []'型の最初の引数を受け付けるInputStreamは見つかりませんでした。また、 'ContentLength'には同じエラーがあります。私たちの教授はこのコードを共有しましたが、私はコードを複数の画像を格納するものとして拡張したいと思います。あなたのコメントによると、すべての入力を得るのに 'foreach'を使うだけですか? –
'HttpPostedFileBase []'はコレクションです。コレクション内の各ファイルを取得するには、コレクションをループする必要があります。そしてもちろん、あなたの 'product.Image'は1つの画像しか保持していないので動作しません。イメージを保存するために2番目のデータベーステーブルが必要です(製品IDにFKを使用) –