Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Salve Mestres,
Estou iniciando em ASP.NET com C# e é claro que tô tomando uma surra daquelas.
Então, cansado de apanhar, vou jogar a toalha... (rs)... a parada é o seguinte:
Tenho um fomulário (EDIT) com foto, nome, sexo, e-mail e blablabla, onde alguns campos são obrigatórios. Nestes eu coloquei RequiredFieldValidator que funciona que é uma beleza. Porém, o primeiro campo é um FileUpload com um botão "Enviar Foto". Escolho a imagem na minha máquina e quando clico em "Enviar Foto", os RequiredFieldValidator são ativados e apresentam as mensagens de campos obrigatórios, mas isso só deveria acontecer quando eu clicasse em "Salvar Dados Pessoais".
São classes distintas mas pelo jeito "Enviar Foto" tá interferindo de alguma maneira e nem consigo ver se o FileUpload está ou não funcionando direito!
O que posso fazer pra solucionar essa pendenga?
Segue o código do Salvar Dados Pessoais e Enviar Foto
protected void SalvarDadosPessoais(object sender, EventArgs e)
{
string connstring = (new Functions()).GeraString();
SqlConnection conn = new SqlConnection(connstring);
conn.Open();
SqlCommand comm = new SqlCommand("UPDATE TB_USER set nm_user='" + nm_user.Text + "', ql_foto='" + FileUpload1.FileName + "', dt_nascimento=dbo.STRINGDMYTODATE(REPLACE('" + dt_nascimento.Text + "', '/','')), ql_sexo='" + ql_sexo.SelectedValue + "', lc_cidade='" + lc_cidade.Text + "', lc_uf='" + lc_uf.SelectedValue + "', ql_pwd='" + ql_pwd.Text + "', ql_email='" + ql_email.Text + "', ds_caracteristica='" + ds_caracteristica.Text + "', fk_mercado='" + fk_mercado.SelectedValue + "', ql_cargo='" + ql_cargo.Text + "', ql_status='2' where PK_USER=" + codigoUsuario.ToString(), conn);
comm.ExecuteNonQuery();
CarregaDados();
}
protected void EnviaFoto(object sender, EventArgs e)
{
FileUpload1.SaveAs("C:\\Documents and Settings\\Meus documentos\\Visual Studio 2008\\WebSites\\ABA\\Fotos" + FileUpload1.FileName);
}
Desde já agradeço a força!
Abraços,
Gustavo
Salve Bruno,
Creio que você não entendeu meu problema.
eu tenho em um formulário os campos:
• Campo FileUpload e botão "Enviar Foto"
• Campo Nome
• Campo Sexo
• Campo E-Mail
• Campo Cidade... etc
Botão "Salvar Dados"
Quando eu clico no "buscar" do FileUpload ele me possibilita buscar e retornar com
o endereço da imagem, ai eu clico em "Enviar Foto" para remetê-la ao servidor, mas
nesta hora ela ativa os validadores dos demais campos, e isso só deveria acontecer
quando eu clicasse no botão "Salvar Dados"... sacou!?
Esse é o meu problema, a ativação das críticas de campos em branco antes da hora.
Preciso submeter primeiro a imagem, e depois preencher os campos do formulário.
Desde já agradeço sua atenção!
Abração!
Opa´!
Descobri a bagaça!
Seguinte, nas propriedades do botão "Enviar Foto" eu declarei CausesValidation="False" e UseSubmitBehavior="False"
E a fotinho foi para o servidor... beleza... mas agora veio a dúvida, com o campo do FileUpload em branco, como eu pego o nome da imagem para salvar no Banco de Dados junto com os demais dados do formulário?
Aos trancos e barrancos nóis vai! (rs)
Valeu a força!
Desculpa, mas não entendi o por que o campo FileUpload estaria em branco.
Abraços...
Boas Bruno,
Seguinte, eu tenho o campo do FileUpload e depois um botão "Enviar Foto".
Eu seleciono a imagem clicando no botão do FileUpload e depois que carrego o campo com o endereço da foto, clico em "Enviar Foto" e neste momento ela é enviada para o servidor, só que ai eu perco o nome da imagem e preciso primeiro que ela seja renomeada (antes mesmo de enviar para o servidor) e que depois eu continue em poder deste nome alterado para grava-lo na base de dados!
Sacou!?
É isso ai!
Valeu!
De uma olhada neste artigo, ele é bem simples: http://www.codigofonte.com.br/codigo/aspne...pload-do-aspnet
Repare como é salvo o caminho e o nome do arquivo, você pode mudar traquilamente e depois armazenar o valor em uma Session para usar na operação que irá gravar no seu banco posteriormente.
Abraços...
Bruno,
Vou ser sincero contigo, começei a estudar C# e ASP.NET semana passada.
O artigo que você me sugeriu não me serviu de nada, a nã ser para levantar mais dúvidas.
Ainda não consigo renomear o arquivo e nem manter este nome para depois salvá-lo na Base de Dados.
Tem como rolar uma explicação para Novato?
Valeu
Este código:
protected void EnviaFoto(object sender, EventArgs e){
Session["NomeArquivo"] = "Quintelab";
FileUpload1.SaveAs("C:\\Documents and Settings\\Meus documentos\\Visual Studio 2008\\WebSites\\ABA\\Fotos" + Session["NomeArquivo"]);
}
Eu usei a session pra alterar o nome do arquivo, e esta mesma session você pode usar para dar o Update no seu banco de dados.
Abraços...
Beleza Bruno?
Véio, já te agradeço a paciência até aqui... já estamos quase lá.
Eu fiz assim:
protected void EnviaFoto(object sender, EventArgs e)
{
Session["NomeDaFoto"] = Request.QueryString["foto_user.FileName"] + Session["codUsuario"].ToString();
foto_user.SaveAs("C:\\Documents and Settings\\Marcos Vinício\\Meus documentos\\Visual Studio 2008\\WebSites\\ABA\\Fotos\\" + Session["NomeDaFoto"]);
}Onde está o erro?
Eu não concatenei corretamente?
O arquivo se chamava "MinhaFoto.jpg" e eu queria que ficasse "MinhaFoto13.jpg"
Deu pau!
Valeu mais uma vez!
Gustavo
Substitua o Request.QueryString["foto_user.FileName"] por FileUpload1.FileName.
Acredito que deva ficar dessa forma:
protected void EnviaFoto(object sender, EventArgs e){
Session["NomeDaFoto"] = FileUpload1.FileName + Session["codUsuario"].ToString();
foto_user.SaveAs("C:\\Documents and Settings\\Marcos Vinício\\Meus documentos\\Visual Studio 2008\\WebSites\\ABA\\Fotos\\" + Session["NomeDaFoto"]);
}Beleza,
Tá quase lá, pois agora ficou "MinhaFoto.jpg13" - mas deveria ficar "MinhaFoto13.jpg"
valeu
Ta ae:
protected void EnviaFoto(object sender, EventArgs e){
string strExtensao = FileUpload1.FileName.Substring(FileUpload1.FileName.Length - 3);
string strNome = FileUpload1.FileName.Replace("." + strExtensao, string.Empty);
Session["NomeDaFoto"] = strNome + Session["codUsuario"].ToString() + "." + strExtensao;
foto_user.SaveAs("C:\\Documents and Settings\\Marcos Vinício\\Meus documentos\\Visual Studio 2008\\WebSites\\ABA\\Fotos\\" + Session["NomeDaFoto"]);
}Beleza meu querido!
Valeu a força!
abraços!
Movido Plataforma .NET http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Plataforma .NET » Web Applications
Você deve definir a propriedade ValidationGroup tanto do botão que você quer validar como dos seus validadores, o mesmo grupo que você preencher no seu validador você deve colocar no seu botão, ae só vai validar o botão que você desejar.
Abraços...