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

时间:2014-01-16 16:53:00

标签: 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显示它。

感谢大家的帮助。

2 个答案:

答案 0 :(得分:2)

大多数浏览器和电子邮件应用无法显示TIFF图像。需要坚持使用PNG,JPG或GIF进行Web界面。

答案 1 :(得分:2)

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

TIFF图像格式不适用于网络使用;它用于打印。 Web的图像格式示例包括JPEG,PNG,GIF和SVG。

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

某些数字图像格式,尤其是那些专为打印而设计的图像格式,如分辨率,元数据和色彩丰富度 - 在计算机显示器中查看时都变得无关紧要 - 文件大小太大用于网络。