2016-12-23 1 views
0

내 백엔드에 .xlsx, .docx 및 .pdf 파일을 저장했습니다. 다운로드 컨트롤러는 다음과 같습니다.스프링 컨트롤러를 통해 다운로드 한 파일이 손상되었습니다.

파일을 열려고하면 파일이 손상되어 복구해야 함을 알립니다. 수리 과정 역시 실패합니다.

이 오류의 원인은 무엇입니까?

비슷한 질문이 많이 있지만 제안 된 해결책 중 어느 것도 작동하지 않는 것 같습니다.

작동하는 유일한 "수정"은 파일을 다운로드하는 프론트 엔드의 링크에 "다운로드"속성을 추가하는 것입니다. 그러나 슬프게도 이것은 IE에서 작동하지 않습니다.

답변

0

Zip 파일을 다운로드 할 때도 동일한 문제가있었습니다. 내 솔루션 궁극적으로 내 컨트롤러 (https://stackoverflow.com/a/33302570/4921953 참조)에서 바이트 배열을 반환하고 크롬/파이어 폭스 (내가 사용하는 다운로드 속성을 사용) 및 인터넷 익스플로러 (https://stackoverflow.com/a/24354303/4921953 참조)에 대한 여러 가지 방법으로 내 JavaScript 프론트 엔드에서 처리합니다.). 프런트 엔드에서 서버로 HTTP 요청을 할 때 responseType이 "arraybuffer"로 설정되어 있는지 확인하십시오.

관련 문제