질문 Q #24984
ci4 파일첨부 ajax 전송시 controller에서 받는 방법 문의 드립니다.
김영성 2022-12-21 14:52:51

안녕하세요.

CI4로 제작중이며, 게시판 글쓰기에 파일첨부 기능이 있습니다.

이때 저장 버튼을 클릭하면 ajax를 통해 저장을 하도록 하였는데 첨부된 파일을 어떻게 전송해야 할지 문의 드립니다.

$.ajax({

          url : "<?= site_url('ProductReviewSave') ?>", 

          type : 'post',

          data : {

                txtFile : $('input#txtFile')[0].files[0]

          },

          success : function(data) {

                alert("등록되었습니다.");

                document.location.reload();

          }

});

ajax는 위와 같이 구성을 하였으며, controller에서 $UpFileInfo = $this->request->getFile("txtFile"); 로 받아서

$UpFileInfo->getName() 값을 추출하고자 $UpFileInfo 값을 받아오지 못하고 있습니다.

여러 고수님들의 도움 부탁 드립니다.

감사합니다.

답변 1
#1 한대승(불의회상) 2022-12-21 16:34:07

아래 코드 참고하세요.

<form id="form" enctype="multipart/form-data">
  <input type="file" name="file" id="file">
</form>

<script>
$('#form').submit(function(e) {
    e.preventDefault();

    var formData = new FormData(this);

    $.ajax({
      type: 'POST',
      url: <?= site_url('ProductReviewSave') ?>,
      data: formData,
      success: function(data) {
        console.log(data);
      }
    });
});
</script>