Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java (Akka HTTP)当我以数组[bytes]的形式向用户发送一个.XLSX文件时,用户将获得该文件夹_Java_Scala_Apache Poi_Akka Http - Fatal编程技术网

Java (Akka HTTP)当我以数组[bytes]的形式向用户发送一个.XLSX文件时,用户将获得该文件夹

Java (Akka HTTP)当我以数组[bytes]的形式向用户发送一个.XLSX文件时,用户将获得该文件夹,java,scala,apache-poi,akka-http,Java,Scala,Apache Poi,Akka Http,我不熟悉akka http,我遇到了一个问题:有一个路由器返回一个带有特定格式报告的文件。当请求xlsx文件时,用户会收到一个文件夹 您可以在report.xlsx中重命名此文件夹,并获得正常工作的excel文件 我以数组[字节]的形式发送xlsx文件 使用akka http 10.0.5 也许有人遇到了这样的问题: 路径(“api”/“报告”/“下载报告”){ 得到{ 参数('format,'jobId.as[Long]){(format,jobId)=> uncacheReport(jobI

我不熟悉akka http,我遇到了一个问题:有一个路由器返回一个带有特定格式报告的文件。当请求xlsx文件时,用户会收到一个文件夹

您可以在report.xlsx中重命名此文件夹,并获得正常工作的excel文件

我以数组[字节]的形式发送xlsx文件 使用akka http 10.0.5

也许有人遇到了这样的问题:

路径(“api”/“报告”/“下载报告”){ 得到{ 参数('format,'jobId.as[Long]){(format,jobId)=> uncacheReport(jobId)匹配{ 案例无=>complete(ResourceNotFound) 如果格式==“excel”=> 编码响应{ val reportHtml:String=representerSupport.represente(报告,HTMLFormat.Excel) 完成(HttpEntity(ContentType(MediaTypes.application/vnd.openxmlformats of cedocument.spreadsheetml.sheet`),ByteString(reportwriter bytes reportHtml))) } } } } } 添加标题“内容处置”解决了问题,谢谢@PJFanning

encodeResponse {
  val reportHtml: String = representerSupport.represent(report, HTMLFormat.Excel)(user.settings.interfaceSettings)
  val header = RawHeader("Content-Disposition", "filename=report.xlsx")
  respondWithHeader(header) {
    complete(HttpEntity(ContentType(MediaTypes.`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`), reportwriter bytes reportHtml))
  }
}

xlsx文件是zip文件,因此可能您的浏览器正在解压缩xlsx文件-可能您可以尝试使用curl或postman,以便查看HTTP响应头-检查是否设置了内容类型-使用filename@PJFanning太多了!添加标题“contentdisposition”解决了
contentdisposition:inline的问题;filename=report.xlsx
更为正常——是一个可能会有所帮助的类