我在Wildfly 10上有一个Web应用程序 并且在Web应用程序目录中,我已经放置了一个zip文件,当用户单击超链接时我想要下载该文件。 在UI上我有
片段
<div class="tyDiv" onclick="window.open('request.getContextPath() + "/downloads/Installer.exe")%>','_self')">
</div>
它会创建正确的网址,如
"http://192.168.2.123:8080/comp/downloads/Installer.exe"
Content-Type:text/html;charset=UTF-8
这符合预期在JBoss6中有效。它下载exe文件但在Wildfly中它显示屏幕上的所有垃圾字符,因为它的内容类型是text / html
我尝试在standalone-full.xml中设置mime类型但是没有用。
<mime-mappings>
<mime-mapping name="css" value="text/css"/>
<mime-mapping name="exe" value="application/octet-stream"/>
</mime-mappings>
答案 0 :(得分:0)
undertow.io处的文档显示了如何手动设置每个响应的MIME类型,例如。具有MIME类型映射的文件可能被称为exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "application/octet-stream");
web.xml
(确保引用了正确的文件)。除此之外,我可以想象servlet-filter可能没有配置它应该 - 并且它会调度它们不应该结束的请求(找到https://stackoverflow.com/tags/servlet-filters/info)。虽然这里的答案甚至显示了如何在运行时添加MIME类型:https://stackoverflow.com/a/38021097/549372(普通的是应该在向输出写入二进制流时服务application/octet-stream
- 这意味着它也可能是错误的输入流)。