niv*_*kar 12 java spring multipartform-data
我想使用Advanced Rest Client从我的桌面发布文本文件.这是我的控制器:
@RequestMapping(value = "/vsp/debug/compareConfig/{deviceIp:.*}", method = RequestMethod.POST, consumes = { "multipart/form-data" }, produces = { "application/json" })
public ResponseEntity<SuccessResult> compareCLIs(HttpServletRequest request, @RequestParam("file") MultipartFile file, @PathVariable("deviceIp") String device)
{
log.info(file.getOriginalFilename());
byte[] bytearr = file.getBytes();
log.info("byte length: ", bytearr.length);
log.info("Size : ", file.getSize());
}
Run Code Online (Sandbox Code Playgroud)
这不会返回字节长度或文件大小的任何值.我想将文件值读取到StringBuffer.有人可以提供有关此的指示吗?在将其解析为字符串之前,我不确定是否需要保存此文件.如果是这样,我如何在工作区中保存文件?
Oli*_*ien 17
如果要将Multipart文件的内容加载到String中,最简单的解决方案是:
String content = new String(file.getBytes());
Run Code Online (Sandbox Code Playgroud)
或者,如果要指定charset:
String content = new String(file.getBytes(), "UTF-8");
Run Code Online (Sandbox Code Playgroud)
但是,如果您的文件很大,这个解决方案可能不是最好的.
首先,这与Spring无关,其次,您不需要保存文件来解析它.
要将Multipart文件的内容读入String,您可以像这样使用Apache Commons IOUtils类
ByteArrayInputStream stream = new ByteArrayInputStream(file.getBytes());
String myString = IOUtils.toString(stream, "UTF-8");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30550 次 |
| 最近记录: |