0
I have a code in asp.net
which aims to upload an image to the database, and I need to adapt it in order to move several up, only I have no idea how to do that. Follows the present code:
Model
public int ClienteId { get; set; }
[Required(ErrorMessage ="Informe o nome do cliente")]
public string Nome { get; set; }
[Required(ErrorMessage = "Informe o email do cliente")]
[EmailAddress]
public string Email { get; set; }
[Required(ErrorMessage = "Informe o endereco do cliente")]
public string Endereco { get; set; }
public byte[] Imagem { get; set; }
public string ImagemTipo { get; set; }
Controller
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "ClienteId,Nome,Email,Endereco,Imagem,ImagemTipo")] Cliente cliente,HttpPostedFileBase upload)
{
if (ModelState.IsValid)
{
if (upload != null && upload.ContentLength > 0) {
var arqImagem = new Cliente {
ImagemTipo=upload.ContentType
};
using (var reader = new BinaryReader(upload.InputStream))
{
arqImagem.Imagem = reader.ReadBytes(upload.ContentLength);
}
cliente.Imagem = arqImagem.Imagem;
cliente.ImagemTipo = arqImagem.ImagemTipo;
}
db.Clientes.Add(cliente);
db.SaveChanges();
TempData["mensagem"] = string.Format("{0} : for incluido com sucesso", cliente.Nome);
return RedirectToAction("Catalogo");
}
return View(cliente);
}
While trying to do this I modified the Image field in the model to:
** public Ienumerable Image { get; set; } **
and the controller like this:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "ClienteId,Nome,Email,Endereco,Imagem,ImagemTipo")] Cliente cliente, HttpPostedFileBase upload)
{
if (ModelState.IsValid)
{
if (upload != null && upload.ContentLength > 0)
{
var arqImagem = new Cliente
{
ImagemTipo = upload.ContentType
};
using (var reader = new BinaryReader(upload.InputStream))
{
arqImagem.Imagem = reader.ReadBytes(upload.ContentLength);
}
cliente.Imagem = arqImagem.Imagem;
cliente.ImagemTipo = arqImagem.ImagemTipo;
}
db.Clientes.Add(cliente);
db.SaveChanges();
TempData["mensagem"] = string.Format("{0} : for incluido com sucesso", cliente.Nome);
return RedirectToAction("Catalogo");
}
return View(cliente);
}
and I have the following mistake :
Erro CS0029 Não é possível converter implicitamente tipo "byte[]" em "System.Collections.Generic.IEnumerable<byte[]>" EnumerableImagem
Thanks for the fixes, buddy. About the conversion error.... it gives in the following line ' using (var Reader = new Binaryreader(upload.Inputstream)) { arqImage.Image = Reader.Readbytes(upload.Contentlength); }' how do I convert this to Working with Ienumerable? without making that mistake?
– Rafael G
@Rafaelg, I put more detail in the answer.
– George Wurthmann