이제 Zip파일을 만들어 보도록하자. 새로운 Zip파일을 생성하기 위해 다음과 같이 빈 Instance를 하나 만든다. var zip = new JSZip(); Zip Instance에 entry를 만들려면 다음과 같이 한다. zip.file( "file.txt", base64data, {'base64':true}); "file.txt"는 Zip파일내부에서 사용할 파일이름이고 base64data는 이미 base64로 인코딩된 text다. base64를 이용하기 때문에 세번째 파라미터에 base64옵션을 켜주었다. 단순히 스트링데이터를 넣으려면 다음과 같이 할 수 있다. zip.file( "file.txt", text ); 현재 우리는 웹에서 사용을 해야 하기 때문에, 두가지를 고려할 수 있다. 첫번째는 ..
필자는 이 것을 웹서버없이 local에서 Zip파일을 읽어서 처리하려 했지만, 불행히도, 브라우저들이 보안이 강화되면서 사용자가 파일을 열어주기전에는 로컬에서 파일을 읽을 방법이 없었다. ajax는 local에서 [파일읽기]자체가 보안문제로 불가능해져서 어쩔 수 없이 웹서버를 돌릴 수 밖에 없었다. Apache와 같이 덩치가 큰 것을 깔긴 싫어서 뒤져보니, 개발언어들에서 테스트용으로 간이 웹서버를 돌릴 수 있는 기능들이 있었다. 만약 phyton이나 php 프로그래밍 모듈이 설치되어 있다면, 굳이 무거운 웹서버를 깔지 않고도 간단한 테스트는 수행할 수 있다. python # If Python version returned above is 3.X python3 -m http.server # On windo..
JSZip Instance만들기 압축을 풀기위해 이제 JSZip인스턴스를 만들어보자. 이 곳에는 zip파일의 내부정보가 저장되어 이 것을 통해 파일목록을 뽑아내거나 특정파일을 압축해제해야한다. 서버에서 zip파일을 가져와서 zip 인스턴스를 만들자. var zipInst = null; // 서버에서 'Zip파일 uri'을 땡겨온다. JSZipUtils.getBinaryContent( 'Zip파일 uri', function(err, data) // 서버에서 당겨온 파일내용이 data에 들어있게 된다. { if(err) { throw err; // or handle err } // data를 분석하여 Zip파일내의 파일정보를 추출할 것이다. JSZip.loadAsync( data ).then( // zip ..
웹브라우저에서 Zip파일을 다룰 일은 사실상 존재하기 어려운 문제지만, 어쩌다 보니, 웹브라우저에서 Zip파일을 풀 일이 생겨 버렸다. 뭐, 다른 방법이 있음에도 좀 욕심을 부린 부분이 있기는 하지만, 결론적으로는 현재작업에는 상당히 도움이 되는 방식이라 이 곳에 기록을 남기기로 한다. 제목 내용 Zip파일 구조와 준비작업 작업을 위해 필요한 library를 다운 받아 설치한다. 인스턴스 만들기 / 파일목록 뽑기 zip파일내의 목록을 뽑아보자 파일의 압축풀기 파일을 풀어서 이미지로 지정하거나 다운로드 간단한 웹서버 돌리기 Ajax를 써야하기 때문에 웹서버를 돌려야한다. 무거운 서버말고 간단히 돌리는 방법이 있다. 파일 압축하기 사용자가 올린파일(실제로올리지는 않고) zip파일을 만들어 다운로드 해보자 예..
간단히 보는 Zip파일 구조 Zip집파일은 단순히 압축된 정보를 그냥 배열을 해놓은 형태로 구성되어 있다. 하지만, 어떤파일이 있는 지에 대한 정보는 파일의 맨끝에 존재하기 때문에, 파일의 끝까지 읽기전에는 압축을 해제할 수가 없다. 위 그림에서 보이듯 파일의 끝에 정보가 있지만, 이 정보가 없어도 앞부분부터 차례대로 읽으면 압축을 풀 수도 있지만, 대부분의 Zip파일을 다루는 라이브러리들은 맨끝의 정보를 이용하여 파일정보를 처리하기 때문에 파일의 끝까지 읽어야 하는 점이 있다. Zip파일을 복구하는 프로그램은 맨끝의 정보없이 바로 처리하도록 만들어져 있다. 여기서는 복구하는 방식이 아닌 기존의 라이브러리를 사용할 것이기에 파일을 온전히 다 읽어야 처리할 수가 있다. 네트웍에서 Zip파일을 받아 처리해야..
Zip파일내의 파일 압축 풀기 실제 파일을 압축을 풀려면 다음과 같이 한다. zip.file( entryName ).async("base64").then( function ( base64Text ) // 압축이 다 풀리면 실행되는 함수 { // base64Text : 압축이 풀린 내용 } ); entryName은 zip파일내의 파일이름이며 결과가 base64형태로 나오게 된다. jszip라이브러리는 성능을 위해(javascript의 꾸진 성능을 보완하려고) thread를 만들어 압축을 푼다. 압축이 다 풀어지면 지정한 함수가 수행되고, 압축을 푼 데이터가 파라미터로 넘어오게 된다. 이 파라미터가 어떤 형태를 갖게 할지는 aync함수의 parameter로 지정할 수가 있다. 우리는 브라우저를 사용하기 때문..
- Total
- Today
- Yesterday
- 안드로이드
- 컴퓨트셰이더
- 사용료
- ComputeShader
- 공유 컨텍스트
- 전기세
- 에어컨
- choreographer
- Android
- texture
- 적금
- OpenGL ES
- TTS
- gpgpu
- 블로그
- 경제보복
- 아끼는 법
- 재태크
- 애드핏
- 전기요금
- 애드센스
- 티스토리
- 전기료
- 금리
- 예금
- 컴퓨트쉐이더
- OpenGLes
- 재테크
- 에어콘
- 텍스처
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |