ASP.NET›  

Upload de arquivos com ASP.NET sem mistérios

3 Comente abaixo Nícolas Müller (@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 submissão 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 não utilizaremos nenhum componente específico.

Vamos acrescentar algumas regras no upload do arquivo para não haver nenhum tipo de inconsistência. As regras são as seguintes:

- O tamanho limite do arquivo será de 200 Kb;

- Haverá um método para remover caracteres indesejados, espaços, etc;

- Faremos uma verificação para ver se já existe um arquivo com o mesmo nome do arquivo que estamos submetendo. Se existir não será feito o upload e vai aparecer uma mensagem para o usuário alterar o nome do arquivo;

- As extensões de arquivos serão limitadas, sendo as seguintes: jpg, gif, doc, pdf.


Obs.: Verificar as permissões no diretório onde serão gravados os arquivos que deve estar como escrita. Criar um diretório virtual para rodar a aplicação.


Próximo passo, a implementação:

Vamos utilizar um input file, um label e um button no nosso form, no evento onClick do button colocaremos o trecho de código abaixo com os comentários:

*********** início código evento onclick button

try

{



//inicializar as variáveis



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 aceitação das regras



//se o valor padrão 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 extensão através 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 método tira_acentos para



      //remover espaços e caracteres indesejados.



      //criar o diretório arquivos no mesmo local da aplicação



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



      // o tamanho acima do permitido - violação de regra



      if (tamanho > permitido)

      {



            this.Label1.Text = "Tamanho Máximo permitido é de "+permitido+" kb!";



            erroRegra="1";



      }



      // extensão diferente de jpg, doc, pdf e gif - violação de regra



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

      {



            this.Label1.Text ="Extensão inválida, só são 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 exceção será mostado no label



                  catch(UnauthorizedAccessException ex)

                  {



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



                  }



        }



}



}



catch

{



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



}



 



*********** fim código evento onclick button



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


//Método que remove acentos, espaços 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 próxima!
========================================
Conheça nosso parceiro e fonte desta matéria:
target="_blank">

Autor da Matéria: Fabio Andre Barcelos

 

Comentários
Compartilhe com seus amigos:
Novidades
tópicos relacionados
Compartilhe com seus amigos:
últimos reviews
  • 8,6
    Review Moto X - Segunda geração
    O aparelho da Motorola é a prova “viva” que o que está ótimo pode melhorar ainda mais.
  • 8,1
    Review Zenfone 5
    Tela de 5 polegadas, câmera de foto e vídeo superiores aos concorrentes, boa usabilidade e preço baixo. A Asus acertou n...
  • 6,4
    Review Nokia Lumia 635
    Testamos hoje o Smartphone Nokia Lumia 635. Confira abaixo o que achamos.



TOPO