我有一个Spring Web Application,用户可以在其中下载PDF和Excel文件。我为它们都设置了HTTP标头:
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.setContentType(MediaType.parseMediaType("application/vnd.ms-excel"));
responseHeaders.setContentLength(fileSize);
responseHeaders.set("Content-Disposition", "attachment");
responseHeaders.add("Content-Disposition", "filename=\"" + encodedFileName + '\"');
这在Tomcat上运行良好(HTTP响应的MIME类型为application / vnd.ms-excel)。
但是在Websphere 7上,服务器始终返回内容类型:此请求的文本/ html。
我已经在Web Sphere虚拟主机中注册了excel内容类型,但这并没有改变。
我错过了什么?
最佳答案
您的语法不正确,不能有多个C-D标头。像这样:
responseHeaders.set("Content-Disposition", "attachment; filename=\"" + encodedFileName + '\"');
另外,当encodedFilenName包含ISO-8859-1字符集之外的字符时,该代码将无法正常工作。
(不知道这是否与您的问题有关)