我已使用this example上传文件并将其下载到数据库。
那么,我怎样才能将该文件发送给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
是二进制数据。
我可以解析app文件夹中的文件,但我需要从数据库中提取文件。
或者,我可以解析文件而不将其保存到数据库吗?
提前致谢。
编辑 - 错误
{{1}}
答案 0 :(得分:2)
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)