javascript
  • csv
  • 2013-05-04 3 views 5 likes 
    5

    테이블에서 CSV 파일을 생성하기 위해 플러그인을 사용하고 있으며 파일을 "다운로드"파일 이름으로 다운로드하고 있습니다. 파일 이름을 어떻게 바꿀 수 있습니까? dowload.csvJavascript : 다운로드 할 파일 이름을 설정하십시오.

    var csv = $("#table").table2CSV({delivery:'download'}); 
    window.location.href = 'data:text/csv;charset=UTF-8,'+ encodeURIComponent(csv); 
    

    답변

    27

    으로 난 당신이 그 클라이언트의 컴퓨터에 가능하다면, 사용자 정의 파일 이름으로 로컬 컴퓨터의 다운로드 폴더에 파일을 저장하는 데 사용할 수있는 도구를 썼다.

    이 글을 쓰는 시점에서 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.

    +1

    좋아 보이지만 2012 년 이전에는 어떤 브라우저도 지원하지 않습니다. 클라이언트 쪽 다운로드로 할 수있는 최선의 방법이라고 생각합니다. – styfle

    +0

    사실, dataURL 대체는 firefox의 오래된 복사본과 오래된 크롬에서 해결할 수있는 MIME 형식 문제를 해결합니다. 작년에 IE10과 [다운로드] 기능을 추가하기 전에 수년간 함수를 사용했습니다 ... – dandavis

    +1

    'BlobBuilder'는 더 이상 사용되지 않습니다. 대신'Blob' 생성자를 사용하기 위해 답을 편집하십시오. –

    관련 문제