Dica: Filtro de extensões de arquivos para upload

Uma dúvida que aparece freqüentemente nos fóruns do MSDN Brasil é sobre como restringir o upload a determinados tipos de arquivos. A idéia é que, por exemplo, se uma aplicação web disponibiliza a funcionalidade de upload de imagens, não se deveria deixar que fosse feito o upload de um arquivo com extensão .doc.

Podemos fazer essa verificação no servidor. O problema desta abordagem é que uma requisição deve ser feita ao servidor web para que este possa fazer a validação. O ideal seria fazer essa restrição no momento em que o usuário está escolhendo o arquivo, ainda no lado cliente da aplicação.

Apesar da especificação do HTML do W3C prever o atributo accept, que especifica uma lista de tipos permitidos para upload de arquivos, parece que nenhum browser implementou essa característica. Pesquisando na Internet, encontrei um código javascript que permite especificar as extensões de arquivos permitidas para upload. Caso o arquivo escolhido não possua uma das extensões informadas, uma mensagem de aviso é exibida e o upload não é feito.

Algumas observações sobre o script: ele não limita a escolha de arquivo às extensões pré-definidas. Ou seja, na caixa de diálogo para escolha do arquivo, pode-se escolher qualquer um. A consistência é feita somente no momento em que o formulário for submetido ao servidor. Outra ponto que deve ser notado é que, por se tratar de um script que roda no lado cliente da aplicação, não se deve confiar totalmente nele, pois pode ser burlado. Assim, é importante que a validação também seja feita no servidor. Por último, nada impediria que alguém renomeasse um arquivo qualquer para uma das extensões permitidas, mesmo que a nova extensão não tivesse nada a ver com o conteúdo do arquivo.

Também sugiro ler uma FAQ que encontrei, com as principais dúvidas relativas a upload de arquivos em aplicações web.

O .NET Framework 3.5 vem aí

A próxima versão do .NET Framework será a 3.5, e será lançada juntamente com a próxima versão do Visutal Studio, chamado até agora de Orcas. Foi isso o que descobri lendo um post do blog do Scott Guthrie.

O Orcas será a primeira versão do Visual Studio independente do .NET Framework. Até hoje, o uso de uma versão do .NET Framework estava amarrado a uma versão do Visual Studio. Foi assim com o Visual Studio 2002 e o .NET Framework 1.0, foi assim com o Visual Studio 2003 e o .NET Framework 1.1 e é assim com o Visual Studio 2005 e o .NET Framework 2.0 (aqui também entra o .NET Framework 3.0, mas que na verdade é o .NET Framework 2.0 com anabolizantes). No Orcas, será possível escolher qual versão do .NET Framework queremos utilizar na aplicação: 2.0, 3.0 ou 3.5.

Outra melhoria irá acontecer no editor WYSIWYG de páginas web. Pelo que foi mostrado, agora sim teremos um editor HTML bem mais robusto e com suporte a design melhorado. O editor de páginas web do Visual Studio sempre foi um de seus pontos fracos. Isso tanto é verdade que muitos recorrem a ferramentas mais especializadas em design, como o DreamWeaver. O Visual Studio irá utizar o mesmo componente de design do Microsoft Expression Web Designer, e trará novidades como possibilidade de ver o código HTML e o design ao mesmo tempo (alterações em um automaticamente afetam o outro), melhor suporte à edição de CSS, entre outras.

No que se refere às tecnologias do lado cliente de uma aplicação web, vale destacar que o ASP.NET AJAX será um componente nativo do Orcas. Além disso, haverá melhor suporte à JavaScript, com melhorias no intellisense e debug.

No acesso a dados, a novidade é o LINQ. Se você não faz idéia do que seja, sugiro ler os artigos listados neste endereço.

Nas próximas semanas, está previsto o lançamento de uma versão CTP pública do Orcas, seguida de uma versão beta. O lançamento da versão final deve ocorrer até o final de 2007.

Windows Server Longhorn

Nem bem o Windows Vista acabou de ser lançado, as atenções agora se voltam para o próximo grande lançamento da Microsoft: a próxima versão do Windows Server, cujo codinome é Longhorn, que está prometido para este ano.

Você pode se registrar no TechNet Beta Central para ser avisado sobre novidades da versão beta. Além disso, também é possível saber quais serão as principais novidades no site do produto.