2012-07-20 5 views
3

http를 통해 Excel 파일을 다운로드해야합니다. 문제는 다른 브라우저가 제대로 작동하는 동안 Chrome 브라우저가 응답 헤더에 설정 한 파일 이름을 무시한다는 것입니다.Chrome에서 파일 다운로드 이름

resp.setContentType("application/vnd.ms-excel"); 
resp.setHeader("Content-disposition:", "attachment; filename=grid.xls"); 

크롬은 "excel.xls"로 저장합니다. Chrome에서 파일 이름을 설정하려면 어떻게해야합니까? 감사합니다

+0

호기심 : 어떤 서블릿 구현을 사용합니까? –

답변

7

HTTP 추적을 얻거나 redbot.org로 사이트를 테스트하십시오.

BTW : setHeader에 대한 첫 번째 매개 변수의 후행 콜론이 비명처럼 보입니다.

+0

필자는 정확히 브라우저에서 수신하는 것을보기 위해 피들러 (Fiddler) 또는 Wireshark (Wireshark)와 같은 것을 사용합니다. 후행 콜론에서 좋은 픽업. 집합 헤더가 콜론을 사용하여 키와 값을 구분할 때 필요하지 않습니다. –

+1

콜론이었습니다. 감사합니다! –

+0

http://greenbytes.de/tech/tc2231/#doublecolon에 테스트 케이스가 추가되어 Safari와 Chrome이 올바르게 작동 함을 보여줍니다. –

0

저는 CSV 파일을 다운로드하는 방법을 찾고 있습니다. 우리는 다음 헤더를 보낸다.

Cache-Control: no-cache,no-store,max-age=0 
Pragma: No-cache 
Content-Length: 312 
Content-Type: application/csv;charset=UTF-8 
Content-disposition: attachment; filename="MyCsvFileToSave.csv" 

이것은 Chrome에서 유용합니다. charset이 차이가있을 수 있습니까?

+0

아니요, Content-Type의 charset 매개 변수는 헤더 필드가 아닌 페이로드에 적용됩니다. –

-1

setHeader의 첫 번째 매개 변수에서 후행 콜론을 제거하면 문제가 해결되었습니다.