I'm trying to adapt an example that I've got here, to be recording the image in the folder, and show both in INDEX and EDIT, but there are some differences. As below, my source code, if they may be orienting me in the sense that I can adjust the program so that it can work, thank you all to post to the help, grateful.
DOMAIN
using System;
using System.ComponentModel;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Web;
namespace MvcApp.Dominio
{
public class FrmCadFuncionario : IDisposable
{
[Key]
[DatabaseGenerated(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity)]
[DisplayName("Código")]
public int T_FrmCadFuncionarioId { get; set; }
[Required(ErrorMessage = "Digite o Nome")]
[StringLength(50, MinimumLength = 1)]
[DisplayName("Nome")]
public string T_FrmCadFuncionarioNome { get; set; }
[DisplayName("Foto")]
public string T_FrmCadFuncionarioFoto { get; set; }
public void Dispose()
{
GC.SuppressFinalize(this);
}
}
}
CONTROLLER
namespace MvcApp.Controllers
{
public class FrmCadFuncionarioController : Controller
{
private IConnection Connection;
private FrmCadFuncionarioAplicacao CadFuncionarioAplicacao;
public FrmCadFuncionarioController()
{
Connection = new Connection();
CadFuncionarioAplicacao = new FrmCadFuncionarioAplicacao(Connection);
}
protected override void Dispose(bool disposing)
{
if (CadFuncionarioAplicacao != null) CadFuncionarioAplicacao.Dispose();
if (Connection != null) Connection.Dispose();
base.Dispose(disposing);
}
------ INDEX da paginas -----
public ActionResult Index(int? page, string filtro)
{
ViewBag.filtro = filtro ?? string.Empty;
return View(CadFuncionarioAplicacao.Pagination(page ?? 1, 10, filtro));
}
----- CREATE ----- Esta gravando na pasta a imagem com o ID e a extensão do arquivo
public ActionResult Create()
{
return View();
}
[HttpPost]
public ActionResult Create(FrmCadFuncionario cadfuncionario, HttpPostedFileBase file)
{
CadFuncionarioAplicacao.Create(cadfuncionario);
if (file != null)
{
String[] strName = file.FileName.Split('.');
String strExt = strName[strName.Count() - 1];
string pathSave = String.Format("{0}{1}.{2}", Server.MapPath("~/Imagens/Fotos_Func/"), cadfuncionario.T_FrmCadFuncionarioId, strExt);
String pathBase = String.Format("/Imagens/Fotos_Func/{0}.{1}", cadfuncionario.T_FrmCadFuncionarioId, strExt);
file.SaveAs(pathSave);
cadfuncionario.T_FrmCadFuncionarioPathFoto = pathBase;
}
return RedirectToAction("Index");
}
-----EDIT - Não esta conseguindo encontrar a pasta das imagens
public ActionResult Edit(int id)
{
return View(CadFuncionarioAplicacao.Find(id));
}
[HttpPost]
public ActionResult Edit(int id, FrmCadFuncionario cadfuncionario, HttpPostedFileBase file)
{
if (ModelState.IsValid)
{
CadFuncionarioAplicacao.Edit(cadfuncionario);
if (file != null)
{
if (cadfuncionario.T_FrmCadFuncionarioFoto != null)
{
if (System.IO.File.Exists(Server.MapPath("~/" + cadfuncionario.T_FrmCadFuncionarioFoto)))
{
System.IO.File.Delete(Server.MapPath("~/" + cadfuncionario.T_FrmCadFuncionarioFoto));
}
}
String[] strName = file.FileName.Split('.');
String strExt = strName[strName.Count() - 1];
string pathSave = String.Format("{0}{1}.{2}", Server.MapPath("~/Imagens/Fotos_Func/"), cadfuncionario.T_FrmCadFuncionarioId, strExt);
String pathBase = String.Format("/Imagens/Fotos_Func/{0}.{1}", cadfuncionario.T_FrmCadFuncionarioId, strExt);
file.SaveAs(pathSave);
cadfuncionario.T_FrmCadFuncionarioFoto = pathBase;
CadFuncionarioAplicacao.Edit(cadfuncionario);
}
return RedirectToAction("Index");
}
return View(cadfuncionario);
}
---- INDEX - Não esta encontrando a pasta das imagens gravadas
public ActionResult Index(HttpPostedFileBase[] files)
{
try
{
foreach (HttpPostedFileBase file in files)
{
string filename = System.IO.Path.GetFileName(file.FileName);
file.SaveAs(Server.MapPath("~/Imagens/Fotos_Func/" + filename));
string filepathtosave = "Imagens/Fotos_Func/" + filename;
}
ViewBag.Message = "Ocorreu com sucesso.";
}
catch (Exception ex)
{
ViewData["Error"] = ex.Message;
}
finally
{
}
return View();
}
VIEW INDEX - Não esta mostrando as imagens na tela
<div class="row-fluid">
<div class="span12">
<h3 class="heading">Consulta Funcionários</h3>
<table class="table table-bordered table-striped table_vam" id="dt_gal">
<thead>
<tr>
<th class="table_checkbox"><input type="checkbox" name="select_rows" class="select_rows" data-tableid="dt_gal" /></th>
<th>Código</th>
<th data-bsortable="true">Nome</th>
<th>Endereço</th>
<th>Numero</th>
<th>Bairro</th>
<th>Cidade</th>
<th>Imagem</th>
<th>Acoes</th>
</tr>
</thead>
<tbody>
@foreach (var Items in Model)
{
<tr>
<td><input type="checkbox" name="row_sel" class="row_sel" /></td>
<td>@Html.DisplayFor(c => Items.T_FrmCadFuncionarioId)</td>
<td>@Html.DisplayFor(c => Items.T_FrmCadFuncionarioNome)</td>
<td>@Html.DisplayFor(c => Items.T_FrmCadFuncionarioEndereco)</td>
<td>@Html.DisplayFor(c => Items.T_FrmCadFuncionarioNumero)</td>
<td>@Html.DisplayFor(c => Items.T_FrmCadFuncionarioBairro_Nome)</td>
<td>@Html.DisplayFor(c => Items.T_FrmCadFuncionarioCidade_Nome)</td>
<td>
<p>
@Html.LabelFor(c => Items.T_FrmCadFuncionarioFoto)<br />
<img src="@Html.DisplayFor(c => Items.T_FrmCadFuncionarioFoto)" alt="Uploaded Image" />
<br />
</p>
</td>
<td>
<a href="@Url.Action("Edit", new { id = Items.T_FrmCadFuncionarioId})" class="sepV_a" title="Editar"><i class="icon-pencil"></i></a>
<a href="@Url.Action("Delete", new { id = Items.T_FrmCadFuncionarioId })" title="Deletar"><i class="icon-trash"></i></a>
</td>
</tr>
}
</tbody>
</table>
</div>
VIEW EDIT - Não esta mostrando a imagem na tela
@using (Html.BeginForm("Edit", "FrmCadFuncionario", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<fieldset>
<legend>Edit Registro </legend>
<div class="tab-content">
<div class="formSep">
<div class="span12">
<div class="vcard">
<div data-fileupload="image" class="fileupload fileupload-new">
<div style="width: 220px; height: 220px;" class="fileupload-new thumbnail">
<img src="~/Imagens/Fotos_Func/FundoImage.png" alt="" />
</div>
<div style="width: 220px; height: 220px; line-height: 220px;"
class="fileupload-preview fileupload-exists thumbnail">
</div>
<br />
<div class="form-horizontal">
<div class="row-fluid">
<span> </span>
<div class="span2">
@Html.LabelFor(model => model.T_FrmCadFuncionarioId)
@Html.TextBoxFor(model => model.T_FrmCadFuncionarioId, new { style = "width:120px;", @class = "form-control", @readonly = "readonly" })
@Html.ValidationMessageFor(model => model.T_FrmCadFuncionarioId)
</div>
if (model.T_FrmCadFuncionarioFoto != null)
{
<div class="row-fluid">
<div class="span4">
<img src="~/Imagens/Fotos_Func/" alt="" />
@Html.LabelFor(model => model.T_FrmCadFuncionarioFoto)
@Html.TextBoxFor(model => model.T_FrmCadFuncionarioFoto, new { style = "width: 250px" })
</div>
</div>
}
else
{
<div class="row-fluid">
<div class="span4">
<img src="~/img/FundoImage.png" alt="" />
@Html.LabelFor(model => model.T_FrmCadFuncionarioFoto)
@Html.TextBoxFor(model => model.T_FrmCadFuncionarioFoto, new { @class = "file-loading", @type = "file", @name = "file" })
</div>
</div>
}
</div>
</div>
</div>
</div>
</div>