엑셀 파일을 게시물으로 업로드 하고 있는데요 ..
본문
안녕하세요? 항상 답변 감사합니다. 게시판 리스트에 버튼 "엑셀 업로드" 추가해주었습니다.
그래서 해당 버튼을 클릭하면 엑셀 파일을 업로드 해줍니다. 이 부분 까지는 구현을 해주었습니다. 그런데 문제의 코드는 아래와 같습니다.
<?php
include_once('./_common.php');
if ($_POST['btn_submit'] == '엑셀 업로드') {
$allowedExtensions = array('xlsx', 'xls');
$uploadedFile = $_FILES['excel_file']['name'];
$fileExtension = pathinfo($uploadedFile, PATHINFO_EXTENSION);
if (!in_array($fileExtension, $allowedExtensions)) {
alert('올바른 파일 형식이 아닙니다. 엑셀 파일(.xlsx, .xls)만 업로드할 수 있습니다.');
} else {
include './excel_upload.php';
}
} 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';
} else if ($_POST['btn_submit'] == '선택복사') {
$sw = 'copy';
include './move.php';
} else if ($_POST['btn_submit'] == '선택이동') {
$sw = 'move';
include './move.php';
} else if ($_POST['btn_submit'] == '선택숨김') {
include './secret_all.php';
} else if ($_POST['btn_submit'] == '엑셀 다운로드') {
include './excel_download.php';
} else {
alert('올바른 방법으로 이용해 주세요.');
}
}
?>
엑셀 업로드 파일이 아닐 경우에만 해당 메시지를 출력해야 하고 엑셀 파일 형식이 아닐 경우 따로 출력되는 메시지를 지정해주었는데도 엑셀 파일을 업로드한 경우 "하실 항목을 하나 이상 선택하세요." 라는 메시지가 출력이 됩니다.
왜 그런 것일까요? 코드만 봐서는 모르겠습니다.
항상 감사합니다.
답변 1
첨부된 소스는 back 단 소스 입니다.
front 단 소스까지 있어야 문제 확인이 쉽습니다.
다음은 별다른 문제 없이 분기처리를 확인할수 있는 임의 구성된 front/back 소스 입니다.
<?php
// include_once('./_common.php');
function alert($msg) {
die('<script>alert("' . $msg . '"); history.back();</script>');
}
if (empty($_POST) == false) {
if ($_POST['btn_submit'] == '엑셀 업로드') {
$allowedExtensions = array('xlsx', 'xls');
$uploadedFile = $_FILES['excel_file']['name'];
$fileExtension = pathinfo($uploadedFile, PATHINFO_EXTENSION);
if (!in_array($fileExtension, $allowedExtensions)) {
alert('올바른 파일 형식이 아닙니다. 엑셀 파일(.xlsx, .xls)만 업로드할 수 있습니다.');
} else {
// include './excel_upload.php';
print("include './excel_upload.php';");
}
} 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('올바른 방법으로 이용해 주세요.');
}
}
}
?>
<form method="post" enctype="multipart/form-data">
<ul>
<li>chk_wr_id : <input type="text" name="chk_wr_id[]" /></li>
<li>chk_wr_id : <input type="text" name="chk_wr_id[]" /></li>
<li>chk_wr_id : <input type="text" name="chk_wr_id[]" /></li>
<li>
<input type="file" name="excel_file" />
</li>
<li>
<button type="submit" name="btn_submit" value="엑셀 업로드">엑셀 업로드</button>
<button type="submit" name="btn_submit" value="선택삭제">선택삭제</button>
<button type="submit" name="btn_submit" value="선택복사">선택복사</button>
<button type="submit" name="btn_submit" value="선택이동">선택이동</button>
<button type="submit" name="btn_submit" value="선택숨김">선택숨김</button>
<button type="submit" name="btn_submit" value="엑셀 다운로드">엑셀 다운로드</button>
<button type="submit" name="btn_submit" value="N/A">N/A</button>
</li>
</ul>
</form>