Я хочу транслировать на лету zip-файл, содержащий изображения и xml-файлы, содержимое xml-файлов получено от перечислителя Elem, однако я нахожу такие примеры:
https://gist.github.com/kirked/412b5156f94419e71ce4a84ec1d54761.
Но моя проблема в том, что содержимое zip не из файлов, а из перечислителя. Так как же напрямую транслировать из перечислителей с помощью фреймворка Scala?
вот мой код:
val xmlContent: Enumerator[Elem] = ..
val streamContent: Enumerator[Array[Byte]] = Enumerator.outputStream { os =>
val zip = new ZipOutputStream(os)
zip.putNextEntry(new ZipEntry("report.xml"))
xmlContent.map{node=> zip.write(node.mkString.getBytes)}
zip.closeEntry()
zip.close()
}
Ok.chunked(streamContent >>> Enumerator.eof).as("application/zip").withHeaders(
CONTENT_DISPOSITION -> "attachment;")