我有一个问题,我希望你能帮助我。 我正在使用 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/