spring 引导中响应 POST 的一些逻辑问题
Some problem Logic with response POST in spring boot
我将不得不做一些开发,我需要你的逻辑,
我会尽量说清楚
我有一个 JSON 文件,将被发送到 Web 服务进行处理。
当文件到达此 Web 服务时,我必须对其进行解析。
第一个问题:
恢复这个文件是@PostMapping吗?
既然是文件,我是这样获取的:
@PostMapping( value="/getFile",
consumes = {"multipart/form-data"})
public void postFile(@RequestParam() MultipartFile file) throws IOException
我很好地恢复了文件,但问题是 @RequestParam 参数需要一个文件名,除了当文件被发送到 web 服务时,我没有还不知道它的名字,
第二题 :
那么如何将这个文件解析成字符串呢?
提前感谢您的宝贵帮助
第一个问题:
是的,@PostMapping 是正确的方法。关于文件名位,@RequestParam() 不期望传递文件名,它期望键值对的“键”,其中值是正在上传的文件。
例如,当通过 RestTemplate 调用发送文件时,该文件将包含在 POST 调用中,如下所示:
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
body.add("uploadFile", getFileToUpload());
此处的键是“uploadFile”,因此您的控制器将如下所示:
@PostMapping( value="/getFile",
consumes = {"multipart/form-data"})
public void postFile(@RequestParam("uploadFile") MultipartFile file) throws IOException
查看本教程:https://spring.io/guides/gs/uploading-files/
第二个问题:
ByteArrayInputStream stream = new ByteArrayInputStream(file.getBytes());
String myFileString = IOUtils.toString(stream, StandardCharsets.UTF_8);
这应该可以。干杯
我将不得不做一些开发,我需要你的逻辑, 我会尽量说清楚
我有一个 JSON 文件,将被发送到 Web 服务进行处理。
当文件到达此 Web 服务时,我必须对其进行解析。
第一个问题: 恢复这个文件是@PostMapping吗?
既然是文件,我是这样获取的:
@PostMapping( value="/getFile",
consumes = {"multipart/form-data"})
public void postFile(@RequestParam() MultipartFile file) throws IOException
我很好地恢复了文件,但问题是 @RequestParam 参数需要一个文件名,除了当文件被发送到 web 服务时,我没有还不知道它的名字,
第二题 :
那么如何将这个文件解析成字符串呢?
提前感谢您的宝贵帮助
第一个问题:
是的,@PostMapping 是正确的方法。关于文件名位,@RequestParam() 不期望传递文件名,它期望键值对的“键”,其中值是正在上传的文件。 例如,当通过 RestTemplate 调用发送文件时,该文件将包含在 POST 调用中,如下所示:
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
body.add("uploadFile", getFileToUpload());
此处的键是“uploadFile”,因此您的控制器将如下所示:
@PostMapping( value="/getFile",
consumes = {"multipart/form-data"})
public void postFile(@RequestParam("uploadFile") MultipartFile file) throws IOException
查看本教程:https://spring.io/guides/gs/uploading-files/
第二个问题:
ByteArrayInputStream stream = new ByteArrayInputStream(file.getBytes());
String myFileString = IOUtils.toString(stream, StandardCharsets.UTF_8);
这应该可以。干杯