У меня есть код службы REST Ниже код, который возвращает файл, теперь проблема в корпусе ответа в PostMan Client. Я получаю исходный ответ, как я могу преобразовать его так, чтобы он отображал содержимое файла клиенту, цель должна возвращать файл пользователю .file имя «File1.jpeg»Обратный файл весной MVC REST
Код:
@RequestMapping(value = URIConstansts.GET_FILE, produces = { "application/json" }, method = RequestMethod.GET)
public @ResponseBody ResponseEntity getFile(@RequestParam(value="fileName", required=false) String fileName,HttpServletRequest request) throws IOException{
ResponseEntity respEntity = null;
byte[] reportBytes = null;
File result=new File("/home/arpit/Documents/PCAP/dummyPath/"+fileName);
if(result.exists()){
InputStream inputStream = new FileInputStream("/home/arpit/Documents/PCAP/dummyPath/"+fileName);
byte[]out=org.apache.commons.io.IOUtils.toByteArray(inputStream);
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.add("content-disposition", "attachment; filename=" + fileName);
respEntity = new ResponseEntity(out, responseHeaders,HttpStatus.OK);
}else{
respEntity = new ResponseEntity ("File Not Found", HttpStatus.OK);
}
return respEntity;
}
Пожалуйста, объясните, почему он решает вашу проблему. – PhoneixS
Работает отлично! Кстати, аннотация @ResponseBody не требуется. – Dante
Обратите внимание, что весна имеет константы заголовка ответа 'org.springframework.http.HttpHeaders.CONTENT_DISPOSITION' и' org.springframework.http.HttpHeaders.CONTENT_TYPE', которые могут использоваться вместо строковых литералов. – chaserb