English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
PHP 파일 업로드
PHP를 통해 파일을 서버에 업로드할 수 있습니다.
이 장의 예제는 test 프로젝트 아래 완료되었습니다. 디렉토리 구조는 다음과 같습니다:
테스트
|-----upload # 파일 업로드의 디렉토리
|-----form.html # 양식 파일
|-----upload_file.php # php 업로드 코드
소스 코드 다운로드:파일 업로드
파일 업로드 폼 생성
사용자가 폼에서 파일을 업로드하는 것은 매우 유용합니다.
아래는 업로드 파일을 위한 HTML 폼입니다:
<html> <head> <meta charset="utf-8"> <title>쿄아 튜토리얼(runoob.com)</title> </head> <body> <form action="upload_file.php" method="post" enctype="multipart/form-data"> <label for="file">파일 이름:</label> <input type="file" name="file" id="file"><br> <input type="submit" name="submit" value="제출"> </form> </body> </html>
위 코드를 form.html 파일에 저장하세요。
위의 HTML 폼에 대한 몇 가지 주의사항을 나열합니다:
1.<form> 태그의 enctype 속성은 폼을 제출할 때 사용할 내용 유형을 지정합니다. 폼이 이진 데이터를 필요로 할 때, 예를 들어 파일 내용을 경우, "multipart"를 사용하세요./form-data"。
2.<input> 태그의 type="file" 속성은 입력을 파일로 처리해야 할지 지정합니다. 예를 들어, 브라우저에서 미리 보기할 때 입력 박스 옆에 탐색 버튼이 보입니다.
주의사항:사용자가 파일을 업로드하는 것은 큰 보안 위험이 있습니다. 신뢰할 수 있는 사용자만 파일 업로드 작업을 수행하도록 하세요.
업로드 스크립트 생성
"upload_file.php" 파일은 업로드 파일을 위한 코드를 포함하고 있습니다:
<?php if ($_FILES["file"]["error"] > 0) { echo "오류:" . $_FILES["file"]["error"] . "<br>"; } else { echo "업로드 파일 이름: " . $_FILES["file"]["name"] . "<br>"; echo "파일 타입: " . $_FILES["file"]["type"] . "<br>"; echo "파일 크기: " . ($_FILES["file"]["size"] / 1024) . " kB<br>"; echo "파일 일시적인 저장 위치: " . $_FILES["file"]["tmp_name"]; } ?>
PHP의 전역 배열 $_FILES를 사용하여 클라이언트 컴퓨터에서 원격 서버로 파일을 업로드할 수 있습니다.
첫 번째 매개변수는 폼의 input name입니다. 두 번째 인덱스는 "name", "type", "size", "tmp_name", 또는 "error" 중 하나일 수 있습니다. 다음과 같이 보입니다:
$_FILES["file"]["name"] - 업로드 파일의 이름
$_FILES["file"]["type"] - 업로드 파일의 타입
$_FILES["file"]["size"] - 파일 크기, 바이트 단위로 계산됩니다
$_FILES["file"]["tmp_name"] - 서버에 저장된 파일의 일시적인 복사본 이름
$_FILES["file"]["error"] - 파일 업로드로 인한 오류 코드
이는 매우 간단한 파일 업로드 방법입니다. 보안을 고려하여, 누가 파일을 업로드할 수 있는지에 대한 제한을 추가해야 합니다.
업로드 제한
이 스크립트에서는 파일 업로드 제한을 추가했습니다. 사용자는 .gif, .jpeg, .jpg, .png 파일만 업로드할 수 있으며, 파일 크기는 200 kB:
<?php // 업로드 가능한 이미지 확장자 $allowedExts = array("gif", "jpeg", "jpg", "png"); $temp = explode(".", $_FILES["file"]["name"]); $extension = end($temp); // 파일 확장자 이름 가져오기 if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg") || ($_FILES["file"]["type"] == "image/x-png") || ($_FILES["file"]["type"] == "image/png")) && ($_FILES["file"]["size"] < 204800) // 하나도 200 kb && in_array($extension, $allowedExts)) { if ($_FILES["file"]["error"] > 0) { echo "에러: " . $_FILES["file"]["error"] . "<br>"; } else { echo "업로드 파일 이름: " . $_FILES["file"]["name"] . "<br>"; echo "파일 타입: " . $_FILES["file"]["type"] . "<br>"; echo "파일 크기: " . ($_FILES["file"]["size"] / 1024) . " kB<br>"; echo "파일 일시적인 저장 위치: " . $_FILES["file"]["tmp_name"]; } } else { echo "불법적인 파일 형식"; } ?>
업로드된 파일 저장
위의 예제는 서버의 PHP 일시적인 폴더에서 업로드된 파일의 일시적인 복사본을 생성합니다.
이 가상의 복사본 파일은 스크립트 종료 시 사라집니다. 업로드된 파일을 저장하려면 다른 위치로 복사해야 합니다:
<?php // 업로드 가능한 이미지 확장자 $allowedExts = array("gif", "jpeg", "jpg", "png"); $temp = explode(".", $_FILES["file"]["name"]); echo $_FILES["file"]["size"]; $extension = end($temp); // 파일 확장자 이름 가져오기 if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg") || ($_FILES["file"]["type"] == "image/x-png") || ($_FILES["file"]["type"] == "image/png")) && ($_FILES["file"]["size"] < 204800) // 하나도 200 kb && in_array($extension, $allowedExts)) { if ($_FILES["file"]["error"] > 0) { echo "에러: " . $_FILES["file"]["error"] . "<br>"; } else { echo "업로드 파일 이름: " . $_FILES["file"]["name"] . "<br>"; echo "파일 타입: " . $_FILES["file"]["type"] . "<br>"; echo "파일 크기: " . ($_FILES["file"]["size"] / 1024) . " kB<br>"; echo "파일 일시 저장 위치: " . $_FILES["file"]["tmp_name"] . "<br>"; // 현재 디렉토리에 있는 upload 디렉토리에 파일이 존재하는지 확인합니다 // upload 디렉토리가 없으면, 그를 생성해야 합니다. upload 디렉토리 권한은 777 if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " 파일이 이미 존재합니다。 "; } else { // upload 디렉토리에 파일이 존재하지 않으면 파일을 upload 디렉토리에 업로드합니다 move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); echo "파일 저장 위치: " . "upload/" . $_FILES["file"]["name"]; } } } else { echo "불법적인 파일 형식"; } ?>
위 스크립트는 파일이 존재하는지 확인한 후, 존재하지 않으면 "upload" 디렉토리에 파일을 복사합니다。
파일 업로드 시연 작업은 다음과 같습니다:
이것이 이 문서의 전체 내용입니다. 많은 도움이 되길 바라며, 많은 지원을 부탁드립니다. 노래教程을 많이 지원해 주세요.
언급: 이 문서의 내용은 인터넷에서 가져왔으며, 원저자가 모두 소유하고 있으며, 인터넷 사용자가 자발적으로 기여하고 자체로 업로드한 내용입니다. 이 사이트는 소유권을 가지지 않으며, 인공 편집 처리를 하지 않았으며, 관련 법적 책임을 지지 않습니다. 저작권 문제가 있는 내용을 발견하면, notice#w로 이메일을 보내 주시기 바랍니다.3codebox.com(보내는 이메일에서 #을 @으로 변경하십시오. 신고하고 관련 증거를 제공하시면, 실제로 확인되면, 이 사이트는 즉시 위법 내용을 삭제합니다。)