首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法发送到Scala的Play中的浏览器ByteArrayOutputStream

无法发送到Scala的Play中的浏览器ByteArrayOutputStream
EN

Stack Overflow用户
提问于 2018-06-09 01:17:41
回答 1查看 307关注 0票数 1

我为Scala编写了以下代码,尝试将Excel文件发送到浏览器:

代码语言:javascript
复制
            val out = new ByteArrayOutputStream
            val exporter = new org.pivot4j.ui.poi.ExcelExporter(out)
            val renderer = new TableRenderer
            renderer.render(model, exporter);
            out.flush
            out.close
            Ok(out).withHeaders(
                  CONTENT_TYPE -> "application/vnd.ms-excel",
                  CONTENT_DISPOSITION -> s"attachment; filename = file.xlsx")

Ok抛出编译错误:

HTTP无法将java.io.ByteArrayOutputStream实例写入◾响应。尝试定义Writeablejava.io.ByteArrayOutputStream

即使ByteArrayOutputStream的类型为output,也不能写入。如何解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-09 03:53:26

尝试在out上调用toByteArray,如下所示:

代码语言:javascript
复制
Ok(out.toByteArray).withHeaders(...)

DefaultWritables提供了Play提供的开箱即用的Writable列表。特别地,当您调用toByteArray时,存在应该被拾取的Writeable[Array[Byte]]

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50765602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档