Build Brasil
Treinamentos FCamara
Validando Arquivos

‘Hoje, graças ao avanço da tecnologia, temos muitas facilidades para guardar nossos arquivos na Internet, como por exemplo, SkyDrive da Microsoft, que é um HD virtual de 25 Gigabytes , você pode guardar seus arquivos.

A única dificuldade disso tudo é você ter que validar isso, os controles do Visual Studio 2005 e 2008, não contém parâmetros para você poder configurar limite de tamanho, tipos de arquivos e outras coisas que você tem fazer no código.

E para ajudar vocês nisso, eu irei colocar alguns métodos que fazem várias validações.

Irei começar falando sobre MimeType do arquivo, ou seja, o tipo dele.

Primeiro, irei criar parâmetros que me ajudaram a validar isso. Criarei eles no Web.Config, na parte de AppSettings, por que lá conseguimos alterar seu valor, mesmo quando a aplicação já esta em produção, ou seja, caso queira mudar alguma especificação do arquivo, basta mudar.

Segue os parâmetros:

  • colecaoMimeType - Colocaremos os tipos de arquivos separando por (;).  
  • Value - Application/exe

 

  • sizeFile - Aqui será o valor do tamanho máximo permitido do arquivo.
  • Value- 1048576

 

  • NoChars - Caracteres não permitidos nas imagens.
  • Value - "+=´`~^º°;:,!@#$%¨*()-?:{}][ÄÅÁÂÀÃäáâàãÉÊËÈéêëèÍÎÏÌíîïìÖÓÔÒÕöóôòõÜÚÛüúûùÇçñÑ"

 

  • YesChars  -Caracteres que serão usa do para substituir os de cima.
  • Value = "___________________________AAAAAAaaaaaEEEEeeeeIIIIiiiiOOOOOoooooUUUuuuuCcnN_"

Depois iremos criar os seguintes métodos:

        /// <summary>
        /// Valida o tipo do arquivo
        /// </summary>
        /// <param name="tipoM">recebe o tipo de arquivo</param>
        /// <returns>retorna se o tipo é valido de acordo a appSettings no web.config</returns>
        protected bool validaTipoArquivo(string tipo)
        {

            bool eValido = true;

            string[] arrayMimeType = ConfigurationManager.AppSettings["colecaoMimeType"].Split(';');

            foreach (string mimeType in arrayMimeType)
            {
                if (tipoMime == mimeType)
                {
                    eValido = false;
                    break;
                }
            }
            return eValido;

        }
        /// <summary>
        /// Valida o tamanho da imagem
        /// </summary>
        /// <param name="tamanhoArquivo">recebe o tamanho da imagem</param>
        /// <returns>retorna se o tamanho é valido de acordo a appSettings no web.config</returns>
        protected bool validaTamanhoArquivo(int tamanhoArquivo)
        {

            bool eValido = false;
            int sizeLimit = int.Parse(ConfigurationManager.AppSettings["sizeFile"]);

            if (fileSize < sizeLimit)
                eValido = true;

            return eValido;

        }


        /// <summary>
        /// Substitui o caracteres especiais, por caracteres normais ou válidos.
        /// </summary>
        /// <param name="word">recebe o nome da imagem</param>
        /// <returns>retorna a imagem com os caracteres especiais substituidos</returns>
        public static string validaNomeArquivo(string nomeArquivo)
        {

            string forbidden = ConfigurationManager.AppSettings["NoChars"];
            string allowed = ConfigurationManager.AppSettings["YesChars"];
    //Substitui caracteres inválidos pelos válidos.
            for (int i = 0; i < forbidden.Length; i++)
            {
                word = word.Replace(forbiddenIdea.ToString(), allowedIdea.ToString()).Trim();
            }

            return word;

        }


Posted 13 Jun 2009 13:01 by Abdul Hade
Copyright© Build Brasil 2004 - 2009 - Todos os Direitos Reservados
Powered by Community Server (Commercial Edition), by Telligent Systems