Content-type do array de bytes

1 resposta
lucasfreitas

Caros,

Tenho uma aplicação web utilizando jboss seam. Nesta, tenho um form com upload de um arquivo, que precisa aceitar apenas do tipo .PDF.
Utilizei o componente fileupload do próprio Seam. Este componente tem uma propriedade “accept” aonde eu declaro os tipos de content-type suportados, declarei então como “application/pdf”, mas ele continua aceitando qualquer tipo de content-type.
Alguém já conseguiu fazer essa validação?
Caso contrário, preciso de verificar o content-type no próprio array de bytes mas sem tranformá-lo em arquivo no servidor. Seria possível?

Obrigado.

1 Resposta

E

http://www.garykessler.net/library/file_sigs.html - todo arquivo pdf começa com “%PDF”. Portanto, pegue os primeiros 4 bytes, e veja se eles são 0x25, 0x50, 0x44, 0x46. Um exemplo dos primeiros bytes de um arquivo PDF que tenho aqui: (compatível com o Adobe Acrobat 4, se não me engano)

0000    25 50 44 46 2D 31 2E 34  0D 25 E2 E3 CF D3 0D 0A   %PDF-1.4.%.Ò....
0010    34 36 20 30 20 6F 62 6A  3C 3C 2F 48 5B 37 35 36   46 0 obj<</H[756
0020    20 34 31 32 5D 2F 4C 69  6E 65 61 72 69 7A 65 64    412]/Linearized
0030    20 31 2F 45 20 38 30 30  34 32 2F 4C 20 31 32 32    1/E 80042/L 122
0040    34 39 31 2F 4E 20 31 31  2F 4F 20 34 39 2F 54 20   491/N 11/O 49/T
0050    31 32 31 35 32 34 3E 3E  0D 65 6E 64 6F 62 6A 0D   121524>>.endobj.
0060    20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20
0070    20 20 0D 0A 78 72 65 66  0D 0A 34 36 20 32 33 0D     ..xref..46 23.
Criado 8 de setembro de 2009
Ultima resposta 9 de set. de 2009
Respostas 1
Participantes 2