Grails Tika Plugin - Как мне отправить файл из базы данных в tika для разбора

Я использовал этот пример, чтобы загрузить и загрузить файл в базу данных. Как я могу отправить этот файл TikaService У меня есть данные и разобрать?

Учебник сохраняет filename а также filedata по отдельности. filedata это двоичные данные.

Я могу разобрать файл в папке приложения, но мне нужно вывести файл из базы данных.

ИЛИ, можно ли проанализировать файл, не сохраняя его в базе данных?

Заранее спасибо.

РЕДАКТИРОВАТЬ - Ошибка

ERROR errors.GrailsExceptionResolver  - MissingPropertyException occurred when processing request: [GET] /myApp/document/parse/8
No such property: inputstream for class: com.myApp.DocumentController. Stacktrace follows:
Message: No such property: inputstream for class: com.myApp.DocumentController

1 ответ

Решение

Апач Тика parse() Метод использует InputStream в качестве входных данных. Так как filedata это byte массив, вы можете использовать ByteArrayInputStream для предоставления данных файла из вашего класса домена в Apache Tika.

def doc = Document.read(/*some id*/)
def inputStream = new ByteArrayInputStream(doc.filedata)
def parser = /* Your Apache Tika parser */
def handler = /* An implementation of org.xml.sax.ContentHandler */
def metadata = new org.apache.tika.metadata.Metadata()

parser.parse(inputStream, handler, metadata)
Другие вопросы по тегам