php 파일 업로드 여부 확인
조회수 1776회
게시판을 만들고 있는데 파일 업로드에서 파일 첨부 여부를 확인하고 싶은데 잘 안되네요..ㅠㅠ
write.html
<div class="banner">
<form enctype="multipart/form-data" action="php/Write_Update.php?location=<?php echo $location ?>" method="POST">
<div class="post">
<div class="carteory">
<select name="Carteory">
<option value="전체">전체</option>
<option value="기타">기타</option>
</select>
</div>
<div class="post-title">
<h3>제목</h3>
<input type="text" name="title" placeholder="제목을 입력하세요.">
</div>
<div class="post-content">
<h3>내용</h3>
<textarea name="content" placeholder="내용을 입력하세요."></textarea>
</div>
<div class="post-tag">
<h3>태그</h3>
<input type="text" name="tag" placeholder="#">
</div>
<div class="FileupBtn">
<input type="file" name="profile">
</div>
<div class="Btn-up">
<button class="uploadBtton">작성</button>
</div>
</div>
</form>
</div>
write_update.php
if($member['User_Log']==1) {
// print "if";
$Carteory = $_POST['Carteory'];
$Title = $_POST['title'];
$Content = $_POST['content'];
$date = date('Y-m-d H:i:s');
$Tag = $_POST['tag'];
if(isset($_FILES['profile'])) {
print $_FILES['profile'];
// $imagecheck = array('jpg', 'jpeg', 'gif', 'png', 'bmp');
$imgpath = pathinfo($_FILES['profile']['name']);
$file_name = $_FILES['profile']['name']; // 업로드한 파일명
$file_tmp_name = $_FILES['profile']['tmp_name']; // 임시 디렉토리에 저장된 파일명
$file_size = $_FILES['profile']['size']; // 업로드한 파일의 크기
$mimeType = $_FILES['profile']['type']; // 업로드한 파일의 MIME Type
// 첨부 파일이 저장될 서버 디렉토리 지정
$save_dir = '../uploadFile/';
// 업로드 파일 확장자 검사
// if(in_array($mimeType, $imagecheck)) {
// echo("<script> alert('업로드를 할 수 없는 파일형식입니다.'); </script>");
// echo("<script>location.href='../Write.html';</script>");
// exit;
// }
// 파일명 변경
$real_name = $file_name; // 원래 파일명(업로드 하기 전 실제 파일명)
$arr = explode(".", $real_name); // 원래 파일의 확장자명을 가져와서 그대로 적용 $file_exe
$file_exe = $mimeType;
$arr1 = $arr[0];
$arr2 = $arr[1];
$arr3 = $arr[2];
$arr4 = $arr[3];
if($arr4) {
$file_exe = $arr4;
} else if($arr3 && !$arr4) {
$file_exe = $arr3;
} else if($arr2 && !$arr3) {
$file_exe = $arr2;
}
$file_time = time();
$file_Name = "file_".$file_time.".".$file_exe; // 실제 업로드 될 파일명 생성
$change_file_name = $file_Name; // 변경된 파일명을 변수에 지정
$real_name = addslashes($real_name); // 업로드 되는 원래 파일명(업로드 하기 전 실제 파일명)
$real_size = $file_size; // 업로드 되는 파일 크기
//파일을 저장할 디렉토리 및 파일명 전체 경로
$dest_url = $save_dir . $change_file_name;
//파일을 지정한 디렉토리에 업로드
if(!move_uploaded_file($file_tmp_name, $dest_url)) {
die("파일을 지정한 디렉토리에 업로드하는데 실패했습니다.");
}
}
// else {
// die("else");
// }
$sql2 = "insert into " . $db_location . "(id, carteory, title, content, date, tag, change_file_name, real_name, real_size) values
('$id', '$Carteory', '$Title', '$Content', '$date', '$Tag', '$change_file_name', '$real_name', '$real_size')";
$result = mysqli_query($conn, $sql2);
if($result) { //query가 정상실행 되었다면,
echo("<script> alert('정상적으로 글이 등록되었습니다.'); location.href='../$web_location';</script>");
}
else {
echo("<script> alert('글을 등록하지 못했습니다.'); location.href='../Write.html?location=$db_location';</script>");
}
}
소스코드의 일부입니다.
write_update.php에서 if(isset($_FILES['profile']))으로
파일첨부 여부를 확인하고 싶은데 무조건 true로 나오네요
어떻게 해야되나요??
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
index.php
<form enctype="multipart/form-data" action="Write_Update.php" method="POST"> <input type="file" name="profile"> <button class="uploadBtton">작성</button> </form>
Write_update.php
if(isset($_FILES['profile'])) { echo "ISSET "; } if(isset($_FILES['profile']) && $_FILES['profile']['name'] != "") { echo $_FILES['profile']['name']; echo "upload"; } else { echo "cannot upload"; }
파일 안올려놓고 전송시 :
ISSET cannot upload
파일 올려놓고 전송시 :
ISSET [파일명] upload
댓글 입력