동영상 강좌는 유튜브 채널 '웹학교'를 이용하시기 바랍니다.
PHP를 사용하면 파일을 서버에 쉽게 업로드 할 수 있습니다.
그러나 쉽게 파일 업로드를 허용 할 때는 항상 주의해야 합니다.
"php.ini"파일 구성하기
먼저 PHP가 파일 업로드를 허용하도록 설정되었는지 확인하십시오.
"php.ini"파일에서 file_uploads 지시문을 검색하여 On으로 설정하십시오.
file_uploads = On
HTML 양식 만들기
사용자가 업로드 할 이미지 파일을 선택할 수있는 HTML 양식을 만듭니다.
<!DOCTYPE html>
<html>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
Select image to upload:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload Image" name="submit">
</form>
</body>
</html>
위의 HTML 양식을 따르는 몇 가지 규칙은 다음과 같습니다.
** 위의 요구 사항이 없으면 파일 업로드가 작동하지 않습니다.
다른주의 사항 :
위의 양식은 데이터를 "upload.php"라는 파일로 보냅니다.
업로드 파일 PHP 스크립트 만들기
"upload.php"파일에는 파일 업로드를 위한 코드가 들어 있습니다 :
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// 이미지파일인지 확인
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "이미지 파일이 아닙니다.";
$uploadOk = 0;
}
}
PHP 스크립트 설명 :
** "upload.php"파일이 있는 디렉토리에 "uploads"라는 새 디렉토리를 만들어야 합니다. 업로드 된 파일은 여기에 저장됩니다.
파일이 이미 있는지 확인하십시오.
이제 몇 가지 제한을 추가 할 수 있습니다.
먼저 파일이 "업로드"폴더에 있는지 확인합니다. 오류 메시지가 표시되면 오류 메시지가 표시되고 $uploadOk는 0으로 설정됩니다.
if (file_exists($target_file)) {
echo "같은 파일이 존재합니다.";
$uploadOk = 0;
}
파일 크기 제한
위의 HTML 양식에 있는 파일 입력 필드의 이름은 "fileToUpload"입니다.
이제 우리는 파일의 크기를 확인하려고 합니다. 파일이 500KB보다 크면 오류 메시지가 표시되고 $uploadOk는 0으로 설정됩니다.
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "파일 크기가 커서 업로드 할 수 없습니다.";
$uploadOk = 0;
}
파일 형식 제한
아래 코드는 사용자가 JPG, JPEG, PNG 및 GIF 파일만 업로드 하도록 허용합니다. 다른 모든 파일 형식은 $uploadOk를 0으로 설정하기 전에 오류 메시지를 표시합니다.
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "JPG, JPEG, PNG 그리고 GIF 파일만 업로드할 수 있습니다.";
$uploadOk = 0;
}
전체 PHP 스크립트
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// 이미지파일인지 확인
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "이미지 파일이 아닙니다.";
$uploadOk = 0;
}
}
// 같은 파일이 있는지 확인
if (file_exists($target_file)) {
echo "같은 파일이 존재합니다.";
$uploadOk = 0;
}
// 파일 크기 제한
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "파일 크기가 커서 업로드 할 수 없습니다.";
$uploadOk = 0;
}
// 허용된 이미지 파일 포멧 확인
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "JPG, JPEG, PNG 그리고 GIF 파일만 업로드할 수 있습니다.";
$uploadOk = 0;
}
// $uploadOk = 0 이면 에러 출력
if ($uploadOk == 0) {
echo "파일을 업로드할 수 없습니다.";
// 파일 업로드
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
} else {
echo "업로드중에 에러가 발생했습니다.";
}
}
그누보드/영카트
/adm/contentformupdate.php
/adm/faqmasterformupdate.php
/adm/member_form_update.php
/bbs/qawrite_update.php
/bbs/register_form_update.php
/bbs/write_update.php
등록된 댓글이 없습니다.