Grails Tika插件 - 如何将文件从数据库发送到tika以解析
问题描述:
我已经使用this example上传和下载文件到数据库。 然后,我怎样才能将该文件发送到TikaService
我有解析数据?Grails Tika插件 - 如何将文件从数据库发送到tika以解析
本教程分别保存filename
和filedata
。 filedata
是二进制数据。
我可以解析应用程序文件夹内的文件,但我需要从数据库中取出文件。
或者,我可以解析文件而不保存到数据库吗?
在此先感谢。
EDIT - 错误
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
答
阿帕奇提卡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)
谢谢您的回复。我很抱歉迟迟没有回来。我试过了,我收到了一些“丢失的财产错误”你可以看看我的编辑? –
你有一个错字。确保'inputStream'变量拼写一致。 –
哦,伙计。这非常愚蠢。感谢您指出。它现在有效。 –