无法读取 rest API 中的输入流数据



我正在将file/img(表单数据(从我的角度应用程序传递到我的rest api作为后置方法主体。 但我无法读取输入流内容。

我的休息 api 方法:-

@RequestMapping(path = "/upload", method = RequestMethod.POST)
@Consumes(MediaType.MULTIPART_FORM_DATA)
public void process(@FormDataParam("file") InputStream dataStream) throws IOException {
this.writeToFile(dataStream, "src/main/resources/targetFile.jpg");
}
private void writeToFile(InputStream uploadedInputStream, String uploadedFileLocation) {
try {
byte[] image = IOUtils.toByteArray(uploadedInputStream);
OutputStream out = new FileOutputStream(new File(uploadedFileLocation));
IOUtils.write(image, out);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}

图像数组始终为空,因此在目标目录中创建空文件。 实现有什么问题吗?

你可以像这样编写休息服务。

控制器方法

@RequestMapping(value="/upload", method=RequestMethod.POST)
public void handleFileUpload(@RequestParam("file") MultipartFile file){
writeToFile(file, "src/main/resources/targetFile.jpg");
}

writeToFile方法

private void writeToFile(MultipartFile file, String uploadedFileLocation) {
if (!file.isEmpty()) {
try {
byte[] bytes = file.getBytes();
BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(new File(uploadedFileLocation)));
stream.write(bytes);
stream.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
} else {
System.out.println("Empty file");
}
}

最新更新