Проверка целостности документов - PullRequest
2 голосов
/ 25 июля 2011

Какие шаги для проверки целостности этих документов? doc,docx,docm,odt,rtf,pdf,odf,odp,xls,xlsx,xlsm,ppt,pptm

Или, по крайней мере, некоторые из них. Обычно при загрузке в репозиторий контента.

Полагаю, что inputStream всегда правильно читается на 99,99% из http-запроса MultiPart, иначе будет сгенерировано исключение и предприняты действия Но пользователь может загрузить уже поврежденный файл - я использую сторонние библиотеки для проверки этого? Я не видел ничего подобного в odftoolkit, itextpdf, pdfbox, apache poi или tika

Ответы [ 4 ]

2 голосов
/ 25 июля 2011

Есть много видов "испорченных".

  • Некоторые повреждения должны легко обнаруживаться.Например, урезанный ODF-файл, скорее всего, потерпит неудачу при попытке открыть его, потому что программа чтения ZIP не может его прочитать.

  • Другие файлы буквально невозможно обнаружить.Например, искажение в один символ в файле RTF будет невозможно обнаружить, и поэтому (я думаю) будет большинство усечений файла RTF.


Я был бы удивлен, если бы вы нашлиЕдиный (бесплатный) инструмент для выполнения этой работы для всех этих типов файлов, даже если это технически возможно.Текущее поколение библиотек с открытым исходным кодом для чтения / записи форматов документов, как правило, сосредоточено только на одном семействе форматов.Если вы серьезно относитесь к этому, вам, вероятно, нужно использовать коммерческую библиотеку.

0 голосов
/ 26 июля 2011

Перейдите, чтобы проверить проект LibreOffice (который уже обрабатывает эти архивы), он имеет части, написанные на Java, и вы наверняка сможете найти и использовать их механизмы для проверки поврежденных файлов.

Я думаю, вы можете получить код здесь:

http://www.libreoffice.org/get-involved/developers/

0 голосов
/ 25 июля 2011

Вы можете сделать контрольные суммы / хэши (то есть, безопасные хэши) файла перед загрузкой, а затем загрузить контрольную сумму отдельно. Если впоследствии загруженный файл имеет такую ​​же контрольную сумму, он не был изменен (с некоторой высокой вероятностью, в зависимости от используемой контрольной суммы / хэша) от оригинала.

0 голосов
/ 25 июля 2011

Для всех вышеперечисленных форматов файлов есть сторонние библиотеки, которые могут открываться и т. Д. - я не знаю, что такое «только проверка», но я думаю, что возможность открыть их без исключений и т. Д. Как минимумосновная проверка того, что файл находится в указанном формате ... Одна такая (коммерческая) библиотека Aspose - не аффилированная, просто счастливый клиент ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...