gpt4 book ai didi

Java Jersey : Need to Produce imageurl instead of image

转载 作者:行者123 更新时间:2023-11-30 08:37:27 25 4
gpt4 key购买 nike

我在 localhost:8080 上运行我的服务器。我想生成一个 RestaurantImage 与之关联的 Restaurants 列表。我正在我的本地驱动器中上传带有其 ID 的图像。我的上传状态是:

{
"uploadstatus": "C:/data/5731453cf1a60921d4d1b8b8oracle.JPG"
}

当我将其作为列表获取时,我从我的 Controller 中找到了这些。

{
"total": 1,
"list": [
{
"id": "5731453cf1a60921d4d1b8b8",
"name": "Kualalam",
"address": "kkkk",
"restaurantImage": "C:/data/5731453cf1a60921d4d1b8b8oracle.JPG",
"review": null
}
]
}

这是我用来获取响应的代码:

 @GET
@Produces("application/json")
public Response list() {

Map<Object, Object> apiResponse = new HashMap<Object, Object>();
Map<Object, Object> serviceResponse = new HashMap<Object, Object>();

try {

List<Restaurant> restaurants = restaurantService.list();

serviceResponse.put("total", restaurants.size());
serviceResponse.put("list", restaurants);

return Response.ok(serviceResponse).build();

} catch (Exception e) {

logger.error("Error in getting restaurants list:", e);
apiResponse.put("error", e.getMessage());
}

return Response.status(500).entity(apiResponse).build();
}

我在这里想要的是,我希望将这家餐厅的图片设置为 http://localhost:8080/data/5731453cf1a60921d4d1b8b8oracle.JPG 。您如何配置我的 Controller 以获得所需的输出?

最佳答案

如果您需要检索您的资源 AbsolutePath,您应该使用 UriInfo这是可注入(inject)接口(interface),提供对应用程序和请求 URI 信息的访问。

您的代码可能是这样的:

@GET    
@Produces("application/json")
public Response list(@Context UriInfo uriInfo) {
...
try {
List<Restaurant> restaurants = restaurantService.list();
for(Restaurant restaurant: restaurants) {
String imageURI = restaurant.getRestaurantImage();
String imageFileName = imageURI.substring(imageURI.lastIndexOf("/"));
restaurant.setRestaurantImage(uriInfo.getAbsolutePath()+"/"+imageFileName);
}
serviceResponse.put("total", restaurants.size());
serviceResponse.put("list", restaurants);
return Response.ok(serviceResponse).build();
...
}
...

}

可能您需要一个图像提供程序(以获取您的“http://localhost:8080/data/5731453cf1a60921d4d1b8b8oracle.JPG”图像)

@GET
@Path("data/{imgFilename}")
@Produces("image/png")
public Response getImage(@PathParam("imgFilename") String fileName) {
File image = restaurantService.getImgByName(fileName);
return Response.ok(image).build();
}

每条路径都必须精心设计以适合您的应用程序和资源 URI。

希望对您有所帮助。

关于Java Jersey : Need to Produce imageurl instead of image,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37246705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com