node.js/React.js

[React] 첨부파일 읽기 및 다운로드 및 압축파일로 만들기

IT공부블로그 2020. 3. 19. 20:57
728x90
반응형

FileSaver, jsZip 설치 필요


npm install file-saver

npm install jszip


파일 읽기


let reader = new FileReader();

reader.readAsText('읽을 파일 넣음');

reader.onload = () => { 

// onload는 비동기니까 주의

console.log( reader.result );

}



파일 다운로드


FileSaver.saveAs(file or new Blob([파일내용]), 파일명);

ex) FileSaver.saveAs(new Blob([res]), file.originalFileName + "." + file.fileExtsn.toLowerCase());

FileSaver.saveAs(file, file.fileName);




파일 압축파일 다운로드


let zip = new JSZip();


// 압축파일로 만들 파일들을 넣음

this.state.attachFile.forEach( element => {

   zip.file(element.name, element, {binary: true}); 

})

 

zip.generateAsync({type: 'blob'})

    .then( content => {

        FileSaver.saveAs(content, this.props.downloadAllFileName);

 })



728x90
반응형