【发布时间】:2014-04-26 09:08:16
【问题描述】:
我想在我的控制器中拥有表单字段的 InputStream,@RequestParam 是 String 还是 MultipartFile。有谁知道如何正确注册转换器。我想要达到的效果是这样的
@RequestMapping(value = "/test", method = RequestMethod.POST)
void sendData(@RequestParam("data") InputStream){
// Deal with InputStream
}
我已经写了两个转换器,但我不确定如何在 spring boot 中注册它们并强制它们工作:
public class StringToStreamConverter implements Converter<String, InputStream> {
@Override
public InputStream convert(String source) {
return new ByteArrayInputStream(source.getBytes());
}
}
public class MultipartFileToStreamConverter
implements Converter<MultipartFile, InputStream> {
@Override
public InputStream convert(MultipartFile source) {
return source.getInputStream();
}
}
【问题讨论】:
-
查看
WebDataBinder和@InitBinder类。 -
PropertyEditors可以使用文本表单,但是当我只想要它的内容时,我认为它们不是文件表单的好解决方案。 -
这几乎是使用
@RequestParam的唯一方法。查看@RequestBody以直接获取InputStream。
标签: java spring spring-boot