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

标签 grails io apache-tika

我已经使用this example将文件上传并下载到数据库中。
然后,如何将文件发送到我拥有的TikaService并解析数据?

本教程分别保存filenamefiledatafiledata是二进制数据。

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

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

提前致谢。

编辑-错误

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

最佳答案

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)

关于grails - Grails Tika插件-如何将文件从数据库发送到tika进行解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35514967/

相关文章:

c++ - "has << operator"类型的参数

java - 通过Java在RTF文件中搜索单词

java - 如何使用 grails 1.3.2 和插件 spring-security-core 1 实现自定义 FilterSecurityInterceptor?

grails - 如何格式化g:选择中的grails列表

grails - 我还如何获取Grails中2个日期之间的记录计数

grails - 动态评估 el 表达式

java - 用 BufferedInputStream 包装 PipedInputStream

python - 在 C 语言中,如何在用户输入的末尾连接 .txt?

Java/Spring : How to Figure out MimeType on an InputStream Without Consuming It

java - 自动排序依赖关系