如何检查文档是否是有效的PDF文档

时间:2015-02-23 09:59:14

标签: c# asp.net file-upload upload

我正在创建一个应用程序,用户在服务器上上传不同类型的文档。我正在验证不同类型的文档,如jpeg,jpg,PNG,TIF,TIFF,GIF,BMP,ICO。

 Dictionary<string, byte[]> imageHeader = new Dictionary<string, byte[]>();
    imageHeader.Add("JPG", new byte[] { 0xFF, 0xD8, 0xFF, 0xE0 });
    imageHeader.Add("JPEG", new byte[] { 0xFF, 0xD8, 0xFF, 0xE0 });
    imageHeader.Add("PNG", new byte[] { 0x89, 0x50, 0x4E, 0x47 });
    imageHeader.Add("TIF", new byte[] { 0x49, 0x49, 0x2A, 0x00 });
    imageHeader.Add("TIFF", new byte[] { 0x49, 0x49, 0x2A, 0x00 });
    imageHeader.Add("GIF", new byte[] { 0x47, 0x49, 0x46, 0x38 });
    imageHeader.Add("BMP", new byte[] { 0x42, 0x4D });
    imageHeader.Add("ICO", new byte[] { 0x00, 0x00, 0x01, 0x00 });

我也想为pdf,docx,excel,PPT做同样的事情。请帮我找到这些文件的十六进制代码。

如果有人试图上传无效文档,我也想验证损坏的文档。

1 个答案:

答案 0 :(得分:0)

libmagic是一个用于此类事情的库。它在现代Unix系统中的file命令后面。您可以通过FFI /绑定使用它,也可以只查看magic number database