gpt4 book ai didi

java - 用于文件上传和 JSON 数据的 Rest 服务 Java

转载 作者:行者123 更新时间:2023-12-01 11:57:20 27 4
gpt4 key购买 nike

我可以有一个可用于文件上传的休息服务,即多部分表单数据和 JSON 参数吗?以下是该服务的示例。

    @POST
@Path("/upload")
@Consumes({ MediaType.MULTIPART_FORM_DATA, MediaType.APPLICATION_JSON })
public Response uploadFile(@FormDataParam("file") InputStream uploadedInputStream,@FormDataParam("file") FormDataContentDisposition fileDetail, City city){

问题是在测试时我试图将文件作为附件传递并将城市对象作为 JSON 传递,它给了我错误,因为 Content-Type 可能是 application/json多部分/表单数据

请告诉我是否有任何方法可以处理这个问题

最佳答案

您可以使用任何客户端语言来提交包含 MultipartFile 和 Json 数据的表单。我在这里用 Spring MVC 编写 Java 代码。它将发送 String Json 和 MultiPartFile。然后我将把字符串 JSON 转换为映射,并将文件保存在所需位置。

@RequestMapping(value="/hotel-save-update", method=RequestMethod.POST )
public @ResponseBody Map<String,Object> postFile(@RequestParam(value="file", required = false) MultipartFile file,
@RequestParam(value = "data") String object ){

Map<String,Object> map = new HashMap<String, Object>();
try {
ObjectMapper mapper = new ObjectMapper();
map = mapper.readValue(object, new TypeReference<Map<String, String>>(){});
}catch (Exception ex){
ex.printStackTrace();
}

String fileName = null;

if (file != null && !file.isEmpty()) {
try {

fileName = file.getOriginalFilename();
FileCopyUtils.copy(file.getBytes(), new FileOutputStream(servletContext.getRealPath("/resources/assets/images/hotelImages") + "/" + fileName));

} catch (Exception e) {
header.put(Utils.MESSAGE, "Image not uploaded! Exception occured!");
return result;
}
}

}

关于java - 用于文件上传和 JSON 数据的 Rest 服务 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28343119/

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