我已经使用this example将文件上传并下载到数据库中。
然后,如何将文件发送到我拥有的TikaService
并解析数据?
本教程分别保存filename
和filedata
。 filedata
是二进制数据。
我可以很好地解析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作为输入。由于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)
关于grails - Grails Tika插件-如何将文件从数据库发送到tika进行解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35514967/