Javascript

파일 업로드2

오시리엔 2023. 11. 13. 10:50
<!DOCTYPE html>
<html lang="ko">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>파일 업로드</title>

    <!-- css 파일을 불러오는 코드 -->

    <!-- 아이콘 사용을 위한 Font Awesome 6 CDN -->
    <link rel="stylesheet" type="text/css"

    <!-- 구글 웹 폰트 사용을 위한 CDN -->
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>

    <!-- 내가 만든 CSS 파일-->
    <link rel="stylesheet" type="text/css" href="./css/reset.css">
    <link rel="stylesheet" type="text/css" href="./css/commons.css">
    <link rel="stylesheet" type="text/css" href="./css/test.css">
    <style>

    </style>

    <!-- swiper cdn -->

    <!-- jquery cdn -->
    <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
    <!-- javascript 작성 공간 -->

    <script>
        //목표 : 설정하기 버튼을 누르면 선택된 파일을 업로드 하고 이미지 변경
        $(function () {
            $(".btn-save").click(function () {

                //파일 선택창을 JavaScript 형태로 불러와야함(내장API사용)
                //var input = document.querySelector(".file-chooser");
                var input = $(".file-chooser")[0];

                //input이 file일 경우에만 files라는 항목이 존재
                console.log(input.files);
                if (input.files.length == 0) return;


                //비동기 통신
                // -form으로 파일을 전송할때 multipart/form-data 설정을 했엇다.
                // -비동기통신일때는 무슨 처리를 해야하는가?
                // -processData : false로 설정
                // -contentType : false로 설정
                // -FormData 객체를 만들어 파일을 추가한뒤 전송
                var form = new FormData();
                //form.append("이름","데이터");
                form.append("attach",input.files[0])
                $.ajax({
                    url: "http://localhost:8080/restfile/upload",
                    method: "post",
                    processData: false,
                    contentType: false,
                    data: form,
                    success: function (response) {
                        //이미지의 Src를 바꾸는 코드
                        console.log(response);
                        console.log(response.attachNo);
         
                        $("img").attr(
                            "src", "http://localhost:8080/restfile/download?attachNo="+response.attachNo);
                    },
                });
            });
        });

    </script>
</head>

<body>
    <input type="file" class="file-chooser">
    <button type="button" class="btn-save">설정하기</button>

    <hr>
    <img src="http://dummyimage.com/200x200/000/fff" width="200" height="200">
</body>

</html>

'Javascript' 카테고리의 다른 글

카카오 지도 다루기  (1) 2023.11.15
Kakao 지도 시작하기  (0) 2023.11.14
파일 업로드  (0) 2023.11.10
써머노트(Summernote)  (0) 2023.11.09
이미지 슬라이더(Swiper)  (1) 2023.11.08