ASP.NET›  

Upload de arquivos com ASP.NET sem mistrios

Comente abaixo Ncolas Mller (@nicolas_muller)

Este artigo mostra como fazer o upload de arquivos para o servidor utilizando a linguagem C# da plataforma .NET com o Visual Studio 2003.

Neste primeiro artigo publicado no site DevMedia vou abordar a submisso de arquivos para o servidor utilizando a linguagem C# da plataforma .NET com o Visual Studio 2003, pois esta plataforma tem uma grande variedade de bibliotecas e no nosso exemplo no utilizaremos nenhum componente especfico.

Vamos acrescentar algumas regras no upload do arquivo para no haver nenhum tipo de inconsistncia. As regras so as seguintes:

- O tamanho limite do arquivo ser de 200 Kb;

- Haver um mtodo para remover caracteres indesejados, espaos, etc;

- Faremos uma verificao para ver se j existe um arquivo com o mesmo nome do arquivo que estamos submetendo. Se existir no ser feito o upload e vai aparecer uma mensagem para o usurio alterar o nome do arquivo;

- As extenses de arquivos sero limitadas, sendo as seguintes: jpg, gif, doc, pdf.


Obs.: Verificar as permisses no diretrio onde sero gravados os arquivos que deve estar como escrita. Criar um diretrio virtual para rodar a aplicao.


Prximo passo, a implementao:

Vamos utilizar um input file, um label e um button no nosso form, no evento onClick do button colocaremos o trecho de cdigo abaixo com os comentrios:

*********** incio cdigo evento onclick button

try

{



//inicializar as variveis



string arq = fileImg.PostedFile.FileName;                 



string extensao = "";



double tamanho = 0;



//tamanho maximo do upload em kb



double  permitido = 200;



//vamos utIlizar uma variavel para controlar a aceitao das regras



//se o valor padro da variavel for alterado  porque alguma regra foi violada



string erroRegra="0";



// Teste para verificar se foi submetido o arquivo



if (fileImg.PostedFile !=null)

{



//identificamos o tamanho do arquivo



tamanho = Convert.ToDouble(fileImg.PostedFile.ContentLength)/1024;



      //verificamos a extenso atravs dos ltimos 4 caracteres



      extensao = arq.Substring(arq.Length - 4).ToLower();



      //para saber o nome do arquivo utilizaremos a propriedade GetFileName



      //passando a string arq



      string nomeArq = System.IO.Path.GetFileName(tira_acentos(arq));



      //diretorio onde ser gravado o arquivo



      //faremos uma chamada ao mtodo tira_acentos para



      //remover espaos e caracteres indesejados.



      //criar o diretrio arquivos no mesmo local da aplicao



      string diretorio = this.Server.MapPath("arquivos\"+tira_acentos(nomeArq));



      // o tamanho acima do permitido - violao de regra



      if (tamanho > permitido)

      {



            this.Label1.Text = "Tamanho Mximo permitido  de "+permitido+" kb!";



            erroRegra="1";



      }



      // extenso diferente de jpg, doc, pdf e gif - violao de regra



      if ( (extensao != ".jpg" && extensao != ".gif" && extensao!=".doc" && extensao!="pdf") )

      {



            this.Label1.Text ="Extenso invlida, s so permitidas .jpg, .doc, .pdf e .gif!";



            erroRegra="2";



      }



      if(erroRegra=="0")

      {



            try

               {



                  // verifica se j existe o nome do arquivo submetido



                  if(!File.Exists(diretorio))

                  {



                        fileImg.PostedFile.SaveAs(diretorio);



                        this.Label1.Text ="Arquivo enviado com sucesso!";



                  }

                  else

                        this.Label1.Text ="J existe um arquivo com esse nome!";



                  }



                  //Caso ocorra alguma exceo ser mostado no label



                  catch(UnauthorizedAccessException ex)

                  {



                        this.Label1.Text ="Erro no Upload:"+ex.Message;     



                  }



        }



}



}



catch

{



      this.Label1.Text ="Erro no Upload";



}



 



*********** fim cdigo evento onclick button



O mtodo abaixo remove acentos e caracteres indesejados e substitui por outros sem acento no nome do arquivo. Vejamos:


//Mtodo que remove acentos, espaos e carateres indesejados



public static string tira_acentos(string texto)

{

string ComAcentos = "!@#$%&*()-?:{}][ ";



      string SemAcentos = "_________________AAAAAAaaaaaEEEEeeeeIIIIiiiiOOOOOoooooUUUuuuuCc_";



      for(int i=0; i < ComAcentos.Length; i++)



    texto= texto.Replace(ComAcentos<em>.ToString(),SemAcentos<em>.ToString()).Trim();

   



return texto; 

}



Espero que tenham aproveitado e at a prxima!
========================================
Conhea nosso parceiro e fonte desta matria:
target="_blank">

Autor da Matria: Fabio Andre Barcelos

ASSUNTOS RELACIONADOS

 
Recentes

TOPO