0
Hello,
I have a view that has more than one form and in each form, I specify the type of document that will be uploaded. ex: Form1 has an Hidden input with value = 1, for Cpf... form2 value = 2, for rg... etc...
So when I give a post to server I take this value and save the file converted to Base64 in the database with the name of the document type: in case 1, as Cpf.
All I want, and I don’t know how to do... is when the post is finished and when you return the Formulars view, Form1 is hidden.
My View
@model BancoBBB.Models.Anexo
@{
ViewBag.Title = "Anexar";
Layout = "~/Views/_Layout.cshtml";
}
<h2>Anexar</h2>
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="col col-md-12 col-sm-12">
<form action="/Anexo/Upload" class="form-horizontal form-label-left" enctype="multipart/form-data" id="frmCpf" method="post" name="frmCpf">
<div class="row">
<div class="col-6">
<label>CPF</label>
<input type="hidden" value="1" name="TipoDocumento" id="TipoDocumento" />
<input id="File" type="file" name="File" class="form-control" />
</div>
<div class="col-3" style="padding-top:25px;">
<input type="submit" value="Enviar" class="btn btn-lg btn-success" />
</div>
</div>
</form>
@using (Html.BeginForm("Upload", "Anexo", FormMethod.Post, new { enctype = "multipart/form-data", @class = "form-horizontal form-label-left", name = "frmRg" }))
{
<div class="row">
<div class="col-6">
<label>RG</label>
<input type="hidden" value="2" name="TipoDocumento" id="TipoDocumento" />
<input id="File" type="file" name="File" class="form-control" />
</div>
<div class="col-3" style="padding-top:25px;">
<input type="submit" value="Enviar" class="btn btn-lg btn-success" />
</div>
</div>
}
@using (Html.BeginForm("Upload", "Anexo", FormMethod.Post, new { enctype = "multipart/form-data", @class = "form-horizontal form-label-left", name = "frmRes" }))
{
<div class="row">
<div class="col-6">
<label>Comprovante de Residência</label>
<input type="hidden" value="3" name="TipoDocumento" id="TipoDocumento" />
<input id="File" type="file" name="File" class="form-control" />
</div>
<div class="col-3" style="padding-top:25px;">
<input type="submit" value="Enviar" class="btn btn-lg btn-success" />
</div>
</div>
}
</div>
<div class="row">
@Html.ActionLink("Back to List", "Index")
</div>
My Model
{
public int AnexoId { get; set; }
public Documento TipoDocumento { get; set; }// Classe enum
public string Arquivo { get; set; }//Propriedade que vai receber a conversão para base64
public string Formato { get; set; }
[NotMapped]
public HttpPostedFileBase File { get; set; }
}
public enum Documento
{
Cpf = 1,
Rg = 2,
ComprovanteResidencia = 3,
}
Annex controller
public ActionResult Anexar()
{
return View();
}
[HttpPost]
public ActionResult Upload(Anexo anexo)
{
if (ModelState.IsValid)
{
anexo.Arquivo = ConverterArquivoBase64(anexo.File);
anexo.Formato = anexo.File.ContentType;
anexoDao.Salvar(anexo);
return RedirectToAction("Anexar");
}
return View("Anexar");
}
public static string ConverterArquivoBase64(HttpPostedFileBase file)
{
byte[] arquivo = new byte[pdf.ContentLength];
file.InputStream.Read(arquivo, 0, file.ContentLength);
return Convert.ToBase64String(arquivo);
}