Grails Tika插件 - 如何从数据库发送文件到tika进行解析

时间:2016-02-19 21:02:42

标签: grails io apache-tika

我已使用this example上传文件并将其下载到数据库。 那么,我怎样才能将该文件发送给filename我拥有并解析数据?

本教程分别保存filedatafiledataERROR 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 是二进制数据。

我可以解析app文件夹中的文件,但我需要从数据库中提取文件。

或者,我可以解析文件而不将其保存到数据库吗?

提前致谢。

编辑 - 错误

{{1}}

1 个答案:

答案 0 :(得分:2)

Apache Tika parse()方法使用InputStream作为输入。由于filedatabyte数组,因此您可以使用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)