Invalid header signature라는 에러가 등장했다.
엑셀 파일을 서버에 내용을 읽어내서 List로 반환하는 식의 기능을 구현하려고 했는데 에러가 발생했다.
로그를 보면 에러는 POIFSFileSystem fs = new POIFSFileSystem(new FileStream(filePath + fileName)); 에서 잡힌다. 서버에 올라온 엑셀 파일을 POI를 이용해서 읽어내는 과정에서 에러가 발생한 것이다.
구글링 해 본 결과 이 에러에는 여러 원인이 있다.
1번의 경우는 서버에서 다운로드 받은 엑셀 파일이 실제 엑셀 파일이 아니라서 생기는 오류로, 엑셀 파일을 서버에서 생성할때 jsp로 생성한다면 생기는 이유로 이건 poi를 이용해 서버 측에 실제 엑셀 파일을 생성한 뒤에 다운로드 받을 수 있게 하면 해결할 수 있다.
1번을 해결했는데도 오류가 계속해서 일어난다면 2번의 경우를 의심 해 볼 수 있다. 2번의 경우에는 파일 자체에 문제가 있는 것이기 때문에 파일에 암호화가 걸려있는지 한 번 확인해보고 업로드 하면 된다.