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)