으로 난 당신이 그 클라이언트의 컴퓨터에 가능하다면, 사용자 정의 파일 이름으로 로컬 컴퓨터의 다운로드 폴더에 파일을 저장하는 데 사용할 수있는 도구를 썼다.
이 글을 쓰는 시점에서 chromey, firefox 또는 IE10이 필요합니다. 그러나이 도구는 이름이없는 다운로드로 대체됩니다.
download(csv, "dowload.csv", "text/csv");
와 마법 코드 :
function download(strData, strFileName, strMimeType) {
var D = document,
a = D.createElement("a");
strMimeType= strMimeType || "application/octet-stream";
if (navigator.msSaveBlob) { // IE10
return navigator.msSaveBlob(new Blob([strData], {type: strMimeType}), strFileName);
} /* end if(navigator.msSaveBlob) */
if ('download' in a) { //html5 A[download]
a.href = "data:" + strMimeType + "," + encodeURIComponent(strData);
a.setAttribute("download", strFileName);
a.innerHTML = "downloading...";
D.body.appendChild(a);
setTimeout(function() {
a.click();
D.body.removeChild(a);
}, 66);
return true;
} /* end if('download' in a) */
//do iframe dataURL download (old ch+FF):
var f = D.createElement("iframe");
D.body.appendChild(f);
f.src = "data:" + strMimeType + "," + encodeURIComponent(strData);
setTimeout(function() {
D.body.removeChild(f);
}, 333);
return true;
} /* end download() */
갱신 : 추가 미래에 강한 IE
일상적인 사용에 대한
update2 : dataURL 및 Blob 지원을 포함하는 체크 아웃 the evolved version on GitHub.
좋아 보이지만 2012 년 이전에는 어떤 브라우저도 지원하지 않습니다. 클라이언트 쪽 다운로드로 할 수있는 최선의 방법이라고 생각합니다. – styfle
사실, dataURL 대체는 firefox의 오래된 복사본과 오래된 크롬에서 해결할 수있는 MIME 형식 문제를 해결합니다. 작년에 IE10과 [다운로드] 기능을 추가하기 전에 수년간 함수를 사용했습니다 ... – dandavis
'BlobBuilder'는 더 이상 사용되지 않습니다. 대신'Blob' 생성자를 사용하기 위해 답을 편집하십시오. –