외부 파일 드래그 드롭 구현

by 조쉬 posted Sep 06, 2018
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

구현

<!DOCTYPE html>
 
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .drop {
            width: 300px;
            height:300px;
            border: 1px solid black;
        }
    </style>
</head>
 
<hr>
<div class="drop" id="drop">
    <img id="dropped"/>
</div>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="http://code.jquery.com/ui/1.10.4/jquery-ui.min.js"></script>
<script>
    $(function(){
        $('#drop').on({
            'drop':function(e){
                var f=e.originalEvent.dataTransfer.files[0];
                var reader = new FileReader();
                $(reader).on('load',function(){
                   $('#dropped').attr('src',reader.result);
                });
                reader.readAsDataURL(f);
                e.preventDefault();
            },
            'dragover':function(e){
                e.preventDefault();
            }
        })
    });
</script>




1) e.originalEvent.dataTransfer.files[0]

- 드롭된 파일(file객체) 접근한다

2) FileReader

- 파일을 읽는 객체를 경유하여 단지 <img> 속성에 이미지를 넣는다

- 업로드 처리는 $.post 같은 ajax 통신을 이용하여 처리한다