【发布时间】:2014-11-17 22:29:42
【问题描述】:
我有一个 base64 编码值的文件 (x509crl) 内容。我向 servlet 发出了 GET 请求。通过在浏览器中粘贴以下 URL 文件下载对话框弹出。
"http://host:port/myServlet?content=base64_encoded_value"
我能够下载文件,但无法打开文件。根据我工作室的 pki 专家的说法,如果 crl 文件的内容正确,那么操作系统应该可以正常打开它。
这是我的 servlet 类中的 doGet 方法。我想知道我犯了什么错误。
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
String content = request.getParameter("content");
response.setContentType("application/pkix-crl");
response.setHeader("Content-Disposition","attachment;filename=test.crl");
byte[] byteArray = Base64.decodeBase64(content.getBytes());
ServletOutputStream sos = response.getOutputStream();
sos.write(byteArray);
sos.close();
}
我使用的是 commons-codec-1.3,并且我没有在示例中包含任何异常处理。
【问题讨论】:
-
用什么打开?您如何尝试打开文件?您已下载证书验证列表。操作系统需要一个应用程序来了解如何处理它。你希望用它做什么?
-
我不知道。有人告诉我,如果 crl 文件正确,操作系统应该知道如何打开它。 [更新]我指的是windows平台。我刚刚看到我的同事刚刚打开了示例 crl 文件就好了。但不是我试图下载的文件。我觉得有些不对劲。
-
你使用的是什么操作系统?
-
哪个应用程序在您的同事系统上打开了文件?如果您不知道,请显示屏幕截图。
-
当您双击它时,您是否收到一条消息说它无效,您是否收到其他错误,或者发生了什么?请提供尽可能多的信息。如果用编辑器打开,内容是什么?