java - 如何获取 blob 的 ContentType?

标签 java jsp servlets blob

我有我的网站,允许用户将 pdf、word 或图像上传到数据库。它存储为 blob。现在,在查看文件时,我使用了以下代码

display_file.jsp

 Blob  b = rs.getBlob(img);
 InputStream is = b.getBinaryStream();
 OutputStream os = response.getOutputStream();
byte buf[] = new byte[(int) b.length()];
                    is.read(buf);
                    os.write(buf);
                    os.close();

和 show_files.jsp

<a href="PhotoDisplay.jsp?img=image4&id=<%=contractNo%>" >Image 4 </a>

每当我点击此链接(如果它是图像)时,它就会显示在网络浏览器上。 但是,如果它是 pdf,则会在浏览器中打开下载提示,我必须下载它。

现在我也想在网络浏览器上显示 pdf。我怎样才能做到这一点?

最佳答案

尝试设置有效的 http header ,如下所示:

response.setContentType("application/pdf");
response.setHeader("Content-Transfer-Encoding", "binary");

另请阅读此讨论,他们有相反的问题:How to force browser to download file?

关于java - 如何获取 blob 的 ContentType?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20089206/

相关文章:

java - Eclipse Juno xml 错误

Java 客户端无法连接到在本地主机上运行的 Redis Sentinel

java - 如何重写java web应用程序中的url?

Java Spring 表单标签问题

java - servlet Spring_Test 的错误 : HTTP Status 500 - Servlet. init() 抛出异常?

java - 如何在 java/android 中的 GRPC 中导入 .proto 文件中的数据类型?

css - 当鼠标悬停在 css 上时突出显示整个 block

java - 一个 servlet 应该执行多少个 Action ?

node.js - 将 Socket.IO 与 Servlet 结合使用

java - 具有私有(private)构造函数的非静态类上的 NoClassDefFoundError