'File'에 해당되는 글 1건

  1. 2014.08.28 html5 File & Blob 객체

html5 File & Blob 객체

Posted by 단순대왕 HTML5 : 2014. 8. 28. 10:37

웹 페이지는 사용자의 컴퓨터에 저장된 파일을 강제로 들고 올 수 없습니다.

하지만, 사용자가 직접 웹 페이지 위에 올린 파일이라면 접근해서 조작할 수 있습니다.

HTML5부터는 파일을 읽고 저장하는 것이 가능합니다.

var fileInput = document.getElementById('file-input');

fileInput.onchange = function () {

var files = this.files;

};

File 객체 속성

name - 이름

type - 형식

size - 크기

lastModifiedDate - 최종 수정시점


FileReader 객체의 메소드

readAsArrayBuffer() - 파일을 Array Buffer 형태로 읽습니다.

readAsBinaryString() - 파일을 이진 문자열 형태로 읽습니다.

readAsDataURL() - 파일을 Data URL 형태로 읽습니다.

                            이미지 파일과 동영상 파일 같은 미디어 파일은 readAsDataURL()로 읽습니다.

예)           

var reader = new FileReader();

reader.readAsDataURL(file);

reader.onload = function () {

var image = document.createElement('img')

image.width = 400;

image.height = 300;

image.src = reader.result;

document.body.appendChild(image);

};

URL Object를 이용한 미디어 파일 제어

var objectURL = URL.createObjectURL(file);

[결과] blob으로 시작되는 URL 생성

<img src="blob:http%3A//localhost/d3adcd08-7fa1-4a9f-9709-4fa25735d25d">

* blob 객체를 사용하면 파일을 웹 브라우저가 관리합니다.

var file = files.item(i);

var objectURL = URL.createObjectURL(file);

var image = document.createElement('img')

image.width = 400;

image.height = 300;

image.src = objectURL;

document.body.appendChild(image);

readAsText() - 파일을 문자열 형태로 읽습니다.


Blob 객체

blob (binary large object) 객체는 용량이 큰 데이터를 다룰 때 사용하는 객체로 일반 파일과 다른 방식으로

운용됩니다.

HTML5의 blob 객체는 웹 페이지 내부에서 생성하지만 웹 브라우저가 관리합니다.

특정한 페이지에서 생성한 blob 객체는 다른 페이지에서도 접근할 수 있습니다.

따라서 여러 번 사용하는 미디어 파일을 생성할 때 사용합니다.

[생성자]

Blob Blob( 

[optional] Array parts, 

[optional] BlobPropertyBag properties 

);

예)

var blob = new Blob( ['Normal Text'], {type: 'text/plain'} );

URL.createObjectURL(blob);

blob 객체를 생성하면 URL.createObjectURL() 매소드로 웹 브라우저에 파일 관리를 요청합니다.

예)

var request = new XMLHttpRequest();

request.open('GET', URL.createObjectURL(blob), false);

request.send();


'HTML5' 카테고리의 다른 글

html5 오프라인 어플리케이션  (0) 2014.08.28
html5 Drag Drop  (0) 2014.08.28
html5 Web Worker  (0) 2014.08.27
html5 해시 및 히스토리 관리  (0) 2014.08.14
html5 기본 기능과 벤더 프리픽스 제거  (1) 2014.08.12
  
 «이전 1  다음»