Asp.Net Mvc 6では、画像をデータベースに追加するために画像をバイトに変換しようとしています。正しいエンコーディング方法を使用する方法を見つけることができません。誰かがコードの下でこれを訂正するのを助けることができますか?間違っているのはエンコーディングです:UInt32は与えられたコンテキストでは有効ではありません。イメージをAsp.Net Mvc 6のバイトに変換する
private readonly ApplicationDbContext _context = new ApplicationDbContext();
public int UploadImageInDataBase(IFormFile file, PublisherInfos publisherInfos)
{
publisherInfos.CoverImage = ConvertToBytes(file);
var pubInfos = new PublisherInfos
{
ImageSize = publisherInfos.ImageSize,
FileName = publisherInfos.FileName,
CoverImage = publisherInfos.CoverImage
};
_context.PublisherInfos.Add(pubInfos);
int i = _context.SaveChanges();
if (i == 1)
{
return 1;
}
else
{
return 0;
}
}
// ConvertToBytes
private byte[] ConvertToBytes(IFormFile image)
{
byte[] CoverImageBytes = null;
var _reader = new StreamReader(image.OpenReadStream());
BinaryReader reader = new BinaryReader(_reader.ReadToEndAsync, encoding: UInt32);
CoverImageBytes = reader.ReadBytes((int)image.Length);
return CoverImageBytes;
}
//
public IActionResult Create(PublisherInfos publisherInfos)
{
if (ModelState.IsValid)
{
IFormFile file = Request.Form.Files["CoverImage"];
PublisherInfosRepository service = new PublisherInfosRepository();
int i = service.UploadImageInDataBase(file, publisherInfos);
if (i == 1)
{
// Add file size and file name into Database
_context.PublisherInfos.Add(publisherInfos);
_context.SaveChanges();
return RedirectToAction("Index", new { Message = PublisherInfoMessageId.DataloadSuccess });
}
}
return View(publisherInfos);
}
まあ、試してみてください。から来るUInt32'とそれが想定しているが意味する? – CodeCaster
BinaryReaderのコンストラクタをチェックするだけで、C#の構文を使って渡す必要があることを理解できます。 –
ちょうど私がより多くの情報がより良いことを指摘したいと思った。あなたは何がうまくいかないかを指定しません。例外をスローしますか? –