반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
30 | 31 |
Tags
- resultMap
- 스프링 빈
- JPA
- DI
- sqld
- jdbc
- springboot
- 스프링 컨테이너
- 스프링 부트 기본
- 스프링 프레임워크
- SQL
- mybatis
- Javascript
- 필드 주입
- @Configuration
- spring
- db
- java
- assertThrows
- 스프링 부트
- kafka
- assertThat
- 생성자 주입
- DIP
- Effective Java
- thymeleaf
- 스프링
- 스프링부트
- 싱글톤
- 스프링 부트 입문
Archives
- Today
- Total
선 조치 후 분석
[Javascript] FileReader로 File Data를 읽어오는 방법 본문
728x90
반응형
SMALL
File API는 JavaScript로 파일을 읽는 방법이다.
기본적으로 가장 많이 사용하는 방법 중 하나가 input을 이용하는 방법이다.
<input type="file" class="input_file" id="atch_file_grp" name="atch_file_grp" onchange="readURL(this)">
// 파일 업로드
function readURL(input){
var extension = input.files[0].name.split('.').pop().toLowerCase(); // 파일 확장자
console.log('extension : ' + extension );
console.log('input.files[0].name : ' + input.files[0].name );
var str = "";
var reader = new FileReader();
$("#thumb_wrap").empty();
if(extension == 'png' || extension == 'jpg' || extension == 'image'){ // png, jpg, image인 경우에는 미리보기 기능 제공
reader.onload = function(e){
var a = input;
//파일 읽어들이기를 성공했을때 호출되는 이벤트 핸들러
str += '<div class="thumb">';
str += ' <div class="img_area">';
str += ' <img id="attach_img" src="'+e.target.result+'" alt="파일첨부 이미지">';
str += ' </div>';
str += ' <button type="button" class="btn_thumb_delete" onclick="deleteFile();" ><em class="blind">첨부파일 삭제</em></button>';
str += '</div>';
str += '<div>'+JSON.stringify(a.files)+'</div>'
str += '<div>'+a.files[0].name+'</div>'
$("#thumb_wrap").append(str);
}
reader.readAsDataURL(input.files[0]);
}
기본적으로 읽을 수 있는 데이터는 a.files [0]. name처럼 뽑아서 읽을 수 있다. 하지만 숨겨진 데이터를 읽으려면
FileReader를 이용해서 읽어야 한다.
데이터를 읽을 수 있는 방법은 총 4가지다.
1) readAsText : 지정된 Blob이나 File의 콘텐츠를 읽기 위해 사용하고 파일의 내용을 텍스트 문자열로 리턴
2) readAsDataURL : 지정된 Blob이나 File의 콘텐츠를 읽기 위해 사용하고 base64 인코딩 된 String Data를 리턴
3) readAsArrayBuffer : 데이터를 일정한 크기로 조금씩 서버로 보내 때 사용하는 방법이고 개체로 리턴
4) readAsBinaryString : 이진법으로 String으로 서버로 데이터를 전달할 때 사용
필자는 FileReader를 이용하기보다는 form의 enctype = 'multipart/form-data'를 사용해서 java단에서 처리하여 넘긴다.
개발하면서 궁금한 점이 있어서 알아보았다.
728x90
반응형
LIST
'Language > JavaScript' 카테고리의 다른 글
[JavaScript] 부분 리로드(새로고침), 원하는 영역만 새로고침 시키기 (0) | 2022.10.07 |
---|---|
[JavaScript] 검색 완료 시, 모바일의 키 패드 내리기 (0) | 2022.10.07 |
[Javascript] window.open vs location.href 차이 (0) | 2022.09.27 |
[Javascript] ajax 비동기 호출 후, css적용 및 함수 적용 (0) | 2022.09.22 |
text(), val() 차이 및 input 값 설정 및 변경 (0) | 2022.09.22 |