테스트 사이트 - 개발 중인 베타 버전입니다

엑셀 업로드 관련 질문입니다. 채택완료

호다 2년 전 조회 1,954

안녕하세요? 엑셀파일을 업로드 해서 엑셀 파일 내용을 게시판에 글을 등록하는 작업을 하고 있습니다. 

항상 답변 감사합니다. 

어떤 자료를 참고하면 될까요?

그리고 제가 게시판 목록에 "엑셀 업로드" 버튼을 추가해서 버튼을 클릭하면 엑셀 파일 확장자인지 아닌지 확인하고 맞다면 엑셀 업로드를 하게 코드를 짜주었는데요 500 에러가 뜹니다. 한 번 봐주실 수 있나요?

항상 감사합니다! 

 

./board_list_update.php
 

<?php

include_once('./_common.php');

    if ($_POST['btn_submit'] == '엑셀 업로드') {

        if (isset($_FILES['uploaded_file'])) {

         $file = $_FILES['uploaded_file'];

 

         // 파일 확장자를 확인

         $fileType = pathinfo($file['name'], PATHINFO_EXTENSION);

         if ($fileType == 'xlsx' || $fileType == 'xls') {

          // 파일 확장자가 엑셀 파일인 경우

          include './excel_upload.php';

          exit;

         } else {

          // 파일 확장자가 엑셀 파일이 아닌 경우

          alert("엑셀 파일만 업로드 가능합니다.");

          exit;

        }

    } else {

        if ($_POST['btn_submit'] != '엑셀 업로드') {

            $count = count($_POST['chk_wr_id']);

     

            if (!$count) {

                alert($_POST['btn_submit'].' 하실 항목을 하나 이상 선택하세요.');

            }

        }

     

        if ($_POST['btn_submit'] == '선택삭제') {

            // include './delete_all.php';

            print("include './delete_all.php';");

        } else if ($_POST['btn_submit'] == '선택복사') {

            $sw = 'copy';

            // include './move.php';

            print("include './move.php';");

        } else if ($_POST['btn_submit'] == '선택이동') {

            $sw = 'move';

            // include './move.php';

            print("include './move.php';");

        } else if ($_POST['btn_submit'] == '선택숨김') {

            // include './secret_all.php';

            print("include './secret_all.php';");

        } else if ($_POST['btn_submit'] == '엑셀 다운로드') {

            // include './excel_download.php';

            print("include './excel_download.php';");

        } else {

            alert('올바른 방법으로 이용해 주세요.');

        }

    }

}

?>

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
toqurk
2년 전

$file = $_FILES['uploaded_file']['name'];

$fileType = pathinfo($file, PATHINFO_EXTENSION);

if( !$fileType || ! in_array($fileType , array('xlsx', 'xls')) || ! preg_match('/^.*\.(xlsx|xls)$/i', $file) ) {

    alert('하단 파일 경로의 확장자는 xlsx, xls 만 허용합니다.');

}else{

    include './excel_upload.php';

    exit;

}
이러게 해보죠 (막상 쓰고 보니 큰 차이는 없어보이긴 하네요..)

만약 이래도 문제가 될경우 

각각의 조건,조건 마다 echo 찍어 어디까지 들어가는지 확인해보죠...

include 자체도 우선 주석처리 하시고..

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

호다
2년 전
감사합니다 ^^ 이렇게 적어도 에러가 나네요 .. 왜 이럴까요 ㅠㅠ
t
toqurk
2년 전
정확한 진단은 보지 않으면 모르는거라..단지 저 정도의 소스만으로 파악해서 설명드리기가 상당히 어렵습니다.
호다
2년 전
감사합니다. 코드를 뜯어 보니까 제가 list.skin.php 부분에서 폼을 두번 만들어놨네요. 다시 코드를 살펴봐야겠어요.

댓글을 작성하려면 로그인이 필요합니다.

2년 전

 @include './excel_upload.php'; <--이렇게 해서 에러가 안나온다면 excel_upload.php 화일 오류입니다

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인