Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gdias

[Resolvido] FileUpload

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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...

Compartilhar este post


Link para o post
Compartilhar em outros sites

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

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...

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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...

Compartilhar este post


Link para o post
Compartilhar em outros sites

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"]);
	   
	}

Estou tentando adicionar ao nome da foto o ID do usuário que eu já tenho quando o cara loga no sistema, mas quando salvou, o arquivo foi gravado apenas com o ID do User, no caso "13", sem extenção, sem nada.

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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"]);
}

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza,

 

Tá quase lá, pois agora ficou "MinhaFoto.jpg13" - mas deveria ficar "MinhaFoto13.jpg"

 

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

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"]);
}

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.