‘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(forbidden
.ToString(), allowed
.ToString()).Trim();
}
return word;
}
Posted
13 Jun 2009 13:01
by
Abdul Hade