java - 当使用 image/tiff 作为 contentType 时,contentDisposition 附件而不是内联

标签 java struts2 mime-types content-type

我有一个问题,我希望你能帮助我。 我正在使用 struts2 并且我有这样的操作:

<action name="myAction" method="cimas" class="MyClass" >
<result name="success" type="stream">
<param name="contentType">image/jpeg</param>
<param name="inputName">inputStream</param>
<param name="contentDisposition">inline;filename="${filename}"</param>
<param name="bufferSize">1024</param>
</result>
</action>

直到这里一切都很完美,我使用以下代码从我的类中设置了 inputStream:

filename = "anImage.jpg";
File img = new File("D://anImage.jpg");
inputStream = new FileInputStream(img);

图像显示正确,但当我尝试显示 tif 格式的图像时出现问题。 我更改了图像的路径、文件名并将 contentType 设置为:

<param name="contentType">image/tiff</param>

但它不起作用,我想知道为什么。谁能帮帮我?

编辑:

我编辑了答案以解释我为解决问题所做的工作。

正如许多用户对我说的,tiff 格式不适用于网络。尽管如此,我还是通过 IE 和 AlternaTIFF 来显示图像。但由于我想要一个适用于所有浏览器的解决方案,最终我将图像转换为 jpg 并使用 ImageMagick 显示它。

感谢大家的帮助。

最佳答案

解决方案是将其转换为 JPEG、PNG、GIF 或 SVG,否则从长远来看会出现问题。

TIFF 图像格式不是为网络使用而设计的;它用于打印。网络图像格式的例子有 JPEG、PNG、GIF 和 SVG。

为什么某些图像格式适合网络,而其他格式则不适合?因为网络上的图像必须经过优化和高度压缩,以免它们变得太大。

一些数字图像格式,尤其是那些专为打印而设计的格式(例如 TIFF)在分辨率、元数据和色彩丰富度方面不必要地高——当在计算机显示器上查看时,这些都变得无关紧要——以至于它们的文件太大供网络使用。

关于java - 当使用 image/tiff 作为 contentType 时,contentDisposition 附件而不是内联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21167925/

相关文章:

java - 支柱2 : textbox label is not displayed

java - 如何根据日期和时间自动运行特定的代码块?

java - 类 org.apache.struts2.convention.DefaultClassFinder$InfoBuildingVisitor 具有接口(interface) org.objectweb.asm.ClassVisitor 作为父类(super class)

http - mediatype、contenttype 和 mimetype 之间有什么区别?

web-services - 设计用于媒体转换的 REST 服务

java - 将 JSON 数据转换为关联数组

java - 如何在android中解析来自.NET Web服务soap对象的XML数据?

java - iReport 2.0.4 连接 - ClassNotFoundException

javascript - 资源解释为图像但使用 MIME 类型 application/octet-stream 传输

java - 如何存储 getSelectedIndex() 中的临时值并在另一个方法中使用存储的值?