我正在使用servlet并将带有byte[]
流的http响应传递给浏览器。我在我的java代码中设置了response.setContentType("application/pdf");
,但它仍然显示垃圾代码,如:JVBERi0xLjQKJeLjz9MKNCAwIG9iago8PC9UeXBlL1hPYmplY3QvQ29sb3JTcGFjZS9EZXZpY2VSR0IvU3VidHlwZS9JbWFnZS9CaXR
如何正确查看浏览器中的PDF格式?
答案 0 :(得分:1)
PDF文档很容易被重新识别,因为它们的第一个字符是%PDF,后跟版本号。
您可以在此处看到显示的内容不符合该规则,因此不是PDF。尽管如此,这个String看起来很像Base 64编码的内容,实际上,如果您要尝试使用base64解码器,您会看到解码后的输出会打印一个以以下内容开头的文档:
%PDF-1.4
... some binary stuff
因此,似乎缺少的是在通过响应发送内容之前解码内容。 为了执行此解码,Apache Commons Codec具有Base64编码和解码的灵活实现,但您也可以使用各种类和工具来完成此任务。请参阅此SO主题的答案: