2012-01-07 2 views
4

data : URI를 사용하여 인코딩하는 GZipped JavaScript 파일이 있습니다. 예를 들어다운로드 한 gzip 데이터 URI의 파일 이름 확장자를 강제로 적용하는 방법은 무엇입니까?

:

<a href="data:application/x-gzip;base64,FOO">My Javascript File</a> 

때 사용자가 마우스 오른쪽 버튼을 클릭하고 내가 download.js.gz로 결과 파일의 이름을 싶습니다 (크롬)이 파일을 저장합니다. 이 방법으로 사용자가이 파일 (Mac OS X)을 두 번 클릭하면 압축이 해제되고 올바르게 이름이 download.js으로 바뀌며 내용을 쉽게 볼 수 있습니다.

문제는 콘텐츠 형식이 text/javascript (또는 application/x-javascript) 일 때 파일이 download.js으로 저장된다는 것입니다. 그리고 콘텐츠 유형 application/x-gzip을 사용하면 파일이 download.gz으로 저장됩니다.

.js.gz으로 파일을 저장할 수있는 방법이 있습니까?

는 여기에 모두 링크의 작업 예제 : http://jsfiddle.net/xYm8w/3/

파일은 데이터 URI가 아닌 실제 파일에 대한 링크해야합니다. <a> 태그 사이의 텍스트를 변경해 보았지만 아무 것도 영향을주지 않습니다.

+0

중복 : http://stackoverflow.com/questions/283956/is-there-any-way-to-specify-a-suggested-filename-when-using-data-uri –

답변

4

Chrome 이외의 브라우저에서이를 수행하는 방법이없는 것처럼 보입니다. 따라서 내가 생각할 수있는 최선의 방법은 사용자에게 파일을 정상적으로 저장하도록 알리는 것입니다 (자동으로 콘텐츠 유형에 따라 적절한 확장자를 자동으로 삽입하도록합니다). 그런 다음 파일을 찾기 위해 이름을 바꾸고 ' .gz '확장자.

그러나 Chrome에서는 태그의 download 속성 (this answer으로 밝혀졌습니다)을 사용할 수 있습니다. 예 : http://jsfiddle.net/pYpqW/

+1

수정. 사양 (http://www.ietf.org/rfc/rfc2397)에 따르면 파일 이름을 지정할 방법이 없습니다. 데이터 URL은 파일이 아니라 데이터 스트림으로 간주됩니다. –