http 요청 배경 에서 엑셀 파일 다운로드, 매번 두 번 다운로드

1800 단어
첫째, nginx 설정 검사
브 라 우 저 는 파일 형식 을 모 르 고 시간 초과 에 응답 하여 두 번 다운로드 합 니 다. 일부 브 라 우 저 는 요청 헤드 를 식별 하지 못 하기 때문에 첫 번 째 http 요청 은 시간 초과 로 인 정 됩 니 다. 이 어 다른 같은 요청 으로 넘 어가 두 번 의 파일 을 다운로드 합 니 다.
블 로 거들 이 주로 겪 는 Excel 파일 을 다운로드 할 때 겪 는 문제, 우선 nginx 설정 에 문제 가 있 는 지 확인
nginx 플러스 링크 시간 초과 설정 60s
        proxy_connect_timeout 60;
        proxy_read_timeout 60;
        proxy_send_timeout 60;
2. 코드 에서 header 에서 contentType 형식 을 application / x - xls 로 변경 합 니 다.
   요청 헤더 에 MediaType. APPLICATION 을 지정 하면OCTET_STREAM  .*(바 이 너 리 흐름, 다운로드 파일 형식 을 모 름) 다운로드 파일 형식 변경
   응용 프로그램 / x - xls 입 니 다.
@RequestMapping("exportCardPwd")
@Log(title = "        ",action = "          ")
public ResponseEntity exportCardPwd(HttpServletRequest request) throws IOException {
DBContextHolder.setDbType(DBContextHolder.DB_TYPE_R);
Long giftCardBatchId = null;
giftCardBatchId = Long.parseLong(request.getParameter("giftCardBatchId"));
List giftCards = giftService.getGiftCardListByBatchId(giftCardBatchId);
File excelFile = giftService.exportCardPwd(PathUtil.getExcelFilesSaveRootPath(request), giftCards);
HttpHeaders headers = new HttpHeaders();
String fileName = new String(PathUtil.getNewExcelFileName().getBytes("UTF-8"), "iso-8859-1");//             
headers.setContentDispositionFormData("attachment", fileName);
// headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
headers.setContentType(MediaType.valueOf("application/x-xls"));
return new ResponseEntity(FileUtils.readFileToByteArray(excelFile), headers, HttpStatus.CREATED);
}

서로 다른 형식 에 서로 다른 ContentType 이 있 습 니 다. xls 문서 용 application / x - xls
이로써 매번 두 번 다운로드 요청 을 해결 했다.

좋은 웹페이지 즐겨찾기