함수는 요소를 본문에 삽입하고 URL을 대상 파일의 텍스트 콘텐츠로 BLOB 값으로 설정하고 요소를 클릭하여 다운로드를 트리거합니다. 요소는 프로세스 중에 숨겨져 있으며 click() 호출 직후 DOM에서 제거됩니다. 함수가 호출되는 즉시 브라우저의 다운로드 프롬프트가 표시됩니다. 다운로드 특성은 사용자가 하이퍼링크를 클릭할 때 대상이 다운로드되도록 지정합니다. 이 특성은 href 특성이 설정된 경우에만 사용됩니다. 데이터 URI에 대한이 크롬 예외는 내가 “다운로드”속성을 실험 할 수있는 재미있는 방법에 대해 생각하게했다. 그리고, 최근에 지미 팰런과 저스틴 팀버 레이크 “해시 태그”skit (다시)를 시청 한 후, 나는 사용자가 “다운로드”특성을 사용하여 캔버스 데이터를 다운로드 할 수있는 HTML 캔버스 기반의 “해시 태그 밈”생성기를 만드는 것이 흥미 로재미있을 것이라고 생각했다. 뿐만 아니라이 내가 “다운로드”기능을 재생할 수 있도록 것, 그것은 또한 나에게 캔버스와 함께 재생할 수있는 기회를 제공 할 것, 이는 내가 정말 전에 해본 적이없는. 내 고객 중 하나는 자신의 응용 프로그램에 멋진 기능을 추가하도록 요청 : Excel 보고서 파일을 다운로드합니다.

자바 스크립트로 다운로드를 시작해야하지만 GET 요청만큼 간단하지 는 않습니다. 따라서 이 페이지를 실행한 다음 이미지 다운로드 버튼을 변경하지 않고 클릭하면 다음 이미지 다운로드가 됩니다. 이러한 .css 및 .js 파일이 브라우저에 캐시되었기 때문입니다. 사용자가 URL에 액세스하면 캐시된 .js 및 .css 파일이 사용됩니다. 이러한 새 변경 내용이 사용자에게 나타나지 않는 이유입니다. 사용자는 브라우저 쿠키를 지우고 페이지를 다시 로드해야하거나 Ctrl + F5를 눌러 페이지를 하드 새로 고쳐야합니다. 메신저는 dataUrl을 donwload하려고하지만 난 너무 큰 것 같아요. 내 다운로드 버튼은 아무것도하지 않을 것이고 나는 dataUrl이 매우 커서 그런 일이 일어난다고 생각합니다.

내 데이터가 너무 크지 않을 때 코드가 잘 작동합니다. 대안이 있습니까? 다운로드 이 “점진적 향상” 관점의 주목할 만한 예외는 HREF 특성이 데이터 URI를 가리키는 경우입니다. 이전에는 사용자를 데이터 URI로 탐색할 수 있었지만 Chrome 브라우저는 보안 문제로 인해 이러한 형태의 탐색을 차단하기 시작했습니다. 그러나 “다운로드” 특성(사용자가 데이터 URI 콘텐츠를 다운로드할 수 있도록 허용)과 함께 사용되는 경우 데이터 URI HREF를 차단하지 않습니다. 다음 간단한 기능을 사용하면 서버에 연결하지 않고 브라우저에서 직접 파일 다운로드를 생성할 수 있습니다. 그것은 모든 HTML5 준비 브라우저에서 작동 요소의 다운로드 속성을 사용 하 여: 구글 크롬을 사용 하 여 상상 하 고 옵션 “자동 열기 다운로드 파일”, 그리고 당신의 불운에 대 한 악의적인 웹사이트에 입력 하 고 알 수 없는 파일의 다운로드를 생성.

Comments are closed