我有一个Web服务,在执行HTTP GET和指定资源时返回一个图像。例如,
HTTP:// WWW [MYDOMAIN]的.com / API / V1 /库/图像/ test.jpg放在
将检索test.jpg并将其流式传输到浏览器。调用的Web服务方法使用以下注释...
@GET
@Path("/repository/image/{filename}")
@Produces("image/jpg")
现在这适用于IE10和Chrome,但是在我的Windows Phone 8 HTML5应用程序中,图像无法呈现。我只是得到一个占位符,表明图像无法显示。任何人都可以解释为什么会发生这种情况吗?任何帮助将不胜感激,这让我疯狂。
更新:以下是网络服务代码和相关的html ...
@GET
@Path("/repository/image/{filename}")
@Produces("image/jpeg")
public Response getImage(@PathParam("filename")String filename)
try {
String path = "/tmp/" + filename;
File imagefile = new File(path);
ResponseBuilder response = Response.ok((Object) imagefile);
response.header("Content-Disposition",
"attachment; filename=" + id);
return response.build();
}
catch (Exception e) {
}
}
我通过简单地设置img标签的src属性来访问我的HTML中的服务,如下所示......
<img src='http://www.[mydomain].com/api/v1/repository/image/test.jpg'/>
答案 0 :(得分:0)
我也遇到过类似的问题。它在IE10桌面上打开但不在手机上打开。事实证明,提供给我的图像格式并不合适。我使用预览(Mac应用程序)打开并以不同的名称再次保存图像,现在该图像工作正常。您可以使用任何图像编辑器应用程序,而不仅仅是预览来保存图像。
可以在此处看到Windows Phone支持的图像格式:
答案 1 :(得分:0)
当然听起来像图像格式问题。
Web服务是否总是返回jpeg? 如果是这样,对于JPEG,我确保提供的图像保存为RGB颜色而不是CMYK颜色模式。
我在WP8上遇到过同样的问题,但仅限于某些PNG图像。提供的PNG图像在所有其他浏览器中都可以正常显示,但在WP8上显示为已损坏的图像。 原来提供的PNG图像没有展平(即它包含生成应用程序的分层信息等)。