Nestes anos que tenho trabalhado como desenvolvedor de sistemas, tive a oportunidade de vivenciar várias situações interessantes, que somente o contato com o usuário pode nos oferecer.

Aprendí que além de ser o desenvolvedor, você também deve incorporar o usuário e tentar imaginar todas as bizarrices possíveis que ele pode acabar fazendo em sua aplicação. É interessante como isso ajuda a prevenir futuros problemas e reduz a quantidade de dor de cabeça, mas nem sempre (quase nunca na verdade), é possível prever todas as imprevisíveis ações das pessoas que lá estão.

Certa vez havíamos colocado um sistema em produção, com um módulo para criar galerias de fotos. Evidentemente, que os únicos formatos aceitos no upload eram os famigerados jpg, gif, png, etc.

Eis que um dia, já trabalhando em outra aplicação, recebo uma ligação de uma de nossas usuárias, informando que havia enviado fotos para sua galeria, mas que não estava funcionando, pois de forma alguma sua imagem aparecia.

Imediatamente fui averiguar o ocorrido, imaginando que pudesse haver algum problema de permissões no diretório do upload, ou uma falha mais grave na aplicação.

O primeiro item a ser verificado foi o banco de dados, que mostrava claramente o nome da imagem enviada. Tudo ok. Pelo nome do arquivo armazenado na base de dados, consiguí encontrá-lo no FTP. Depois fiz o download para ver se o mesmo não havia sido corrompido durante o envio.

Ao baixar o arquivo para o computador, ví que não era possível abrí-lo em nenhum visualizador de imagem, fazendo-me imaginar que ele realmente havia sido corrompido, enchendo minha mente de idéias sobre como aquilo podia ter ocorrido, e como eu iria gastar minhas horas corrigindo a suposta falha.

Decidí então ver como estáva o arquivo em um editor hexadecimal, para ver o que havia lá. Eis que no cabeçalho aparece a informação: Microsoft Word Document. Isso me deixou bastante intrigado, decidindo alterar a extensão de JPG para DOC e ver se aquela informação era válida.

Quando o arquivo foi enfim aberto no editor de textos, comecei a gargalhar infinitamente. Imediatamente todos correram até o meu computador para ver do que se tratava… Quando expliquei o que era e mostrei a tela do editor de textos, todos também riram bastante naquela fatídica tarde.

O print screen abaixo ilustra exatamente o que foi visto naquele dia (Clique na imagem para ampliar):


Isso é exatamente o que eu chamo de "Documento de Imagem"

Sim. A nobre usuária teve a sagacidade de abrir o Word e inserir a imagem dentro do documento. Quando tentou fazer o upload e o sistema bloqueou, a solução dela foi bem simples. Renomear o .doc para .jpg e enviar novamente.

Posteriormente liguei para ela e educadamente expliquei a situação, e que bastava ela usar a imagem sem colocá-la dentro de um doc, para então enviar à sua galeria no sistema.

Aprendí que validação do conteúdo do arquivo também é muito importante, e que, quando você falar para o usuário enviar um documento de imagem, acredite, ele vai mandar na verdade uma imagem dentro do documento.