PHP 파일 업로드 폼~학습노트

PHP 파일 업로드는 PHP를 통해 서버에 파일을 업로드할 수 있습니다.파일 업로드 폼을 만듭니다. 사용자가 폼에서 파일을 업로드할 때 매우 유용합니다.다음은 파일을 업로드할 수 있는 html 폼입니다.
<html>
<body>

<form action="upload_file.php" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file">
<br />
<input type="submit" name="submit" value="Submit">
</form>

</body>
</html>

탭의enctype 속성은 폼을 제출할 때 그 내용 형식을 사용해야 한다고 규정합니다.폼에 바이너리 데이터가 필요할 때, 예를 들어 파일 내용은'multipart/form-data'를 사용하십시오.
라벨의 type = "file"속성은 입력을 파일로 처리해야 한다고 규정하고 있습니다.예를 들어 브라우저에서 미리 볼 때 입력 상자 옆에 탐색 단추가 있습니다.
주석: 사용자가 파일을 업로드할 수 있도록 하는 것은 커다란 안전 위험이다.신뢰할 수 있는 사용자만 파일에서 작업을 수행할 수 있도록 하십시오.
-------------------------------------------------------------------------------------------------------------------
업로드 스크립트 만들기:
upload_file.php 파일에는 업로드할 파일의 코드가 있습니다.
<?php
<span style="white-space:pre">	</span>if($_FILES["file"]["error"] > 0) {
<span style="white-space:pre">		</span>echo "Upload Error: ". $_FILES["file"]["error"] . "<br />";
<span style="white-space:pre">	</span>}else {
<span style="white-space:pre">		</span>echo "Upload : ". $_FILES["file"]["name"] . "<br />";
<span style="white-space:pre">		</span>echo "Type : ". $_FILES["file"]["type"] . "<br />";
<span style="white-space:pre">		</span>echo "Size : ". $_FILES["file"]["size"]/1024 . " kb<br />";
<span style="white-space:pre">		</span>echo "Store in : ". $_FILES["file"]["tmp_name"] . "<br />" ;
<span style="white-space:pre">	</span>}
?>

PHP를 사용한 글로벌 배열 $_FILES, 클라이언트 컴퓨터에서 원격 서버에 파일을 업로드할 수 있습니다.
첫 번째 인자는 폼의 inputname입니다. 두 번째 다음 표는 "name", "type", "size", "tmp_name"또는 "error"입니다.just like this:
$_FILES ["file"] ["name"] - 업로드된 파일의 이름입니다.
$_FILES ["file"] ["type"] - 업로드되는 파일 유형
$_FILES ["file"] ["size"] - 업로드된 파일의 크기를 바이트로 계산합니다.
$_FILES ["file"] ["tmp_name"] - 서버에 저장된 파일의 임시 복사본 이름
$_FILES ["file"] ["error"] - 파일 업로드로 인한 오류 코드
이것은 매우 간단한 파일 업로드 방식의 하나다.보안에 대한 고려를 바탕으로 어떤 사용자가 파일을 업로드할 권리가 있는지에 대한 제한을 늘려야 합니다.
이 스크립트에서, 우리는 파일 업로드에 대한 제한을 추가했다.사용자는 업로드만 가능합니다.gif 또는.jpeg 파일, 파일 크기는 20kb 미만이어야 합니다.
<?php

<span style="white-space:pre">	</span>if ((($_FILES["file"]["type"] == "image/gif")
<span style="white-space:pre">	</span>|| ($_FILES["file"]["type"] == "image/jpeg")
<span style="white-space:pre">	</span>|| ($_FILES["file"]["type"] == "image/pjpeg"))
<span style="white-space:pre">	</span>&& ($_FILES["file"]["size"] < 20000)) {
<span style="white-space:pre">		</span>if ($_FILES["file"]["error"] > 0) {
<span style="white-space:pre">			</span>echo "Error: " . $_FILES["file"]["error"] . "<br />";
<span style="white-space:pre">		</span>}else {
<span style="white-space:pre">			</span>echo "Upload: " . $_FILES["file"]["name"] . "<br />";
<span style="white-space:pre">			</span>echo "Type: " . $_FILES["file"]["type"] . "<br />";
<span style="white-space:pre">			</span>echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
<span style="white-space:pre">			</span>echo "Stored in: " . $_FILES["file"]["tmp_name"];
<span style="white-space:pre">		</span>}
<span style="white-space:pre">	</span>}else {
<span style="white-space:pre">		</span>echo "Invalid file";
<span style="white-space:pre">	</span>}

?>

주석: IE에 대해 jpg 파일을 식별하는 형식은 pjpeg이고 FireFox에 대해서는 jpeg이어야 합니다.
<?php
<span style="white-space:pre">	</span>if ((($_FILES["file"]["type"] == "image/gif")
<span style="white-space:pre">	</span>|| ($_FILES["file"]["type"] == "image/jpeg")
<span style="white-space:pre">	</span>|| ($_FILES["file"]["type"] == "image/pjpeg"))
<span style="white-space:pre">	</span>&& ($_FILES["file"]["size"] < 20000)) {
<span style="white-space:pre">		</span>if ($_FILES["file"]["error"] > 0) {
<span style="white-space:pre">			</span>echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
<span style="white-space:pre">		</span>}else {
<span style="white-space:pre">			</span>echo "Upload: " . $_FILES["file"]["name"] . "<br />";
<span style="white-space:pre">			</span>echo "Type: " . $_FILES["file"]["type"] . "<br />";
<span style="white-space:pre">			</span>echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
<span style="white-space:pre">			</span>echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";

<span style="white-space:pre">			</span>if (file_exists("upload/" . $_FILES["file"]["name"])) {
<span style="white-space:pre">				</span>echo $_FILES["file"]["name"] . " already exists. ";
<span style="white-space:pre">			</span>}else {
<span style="white-space:pre">				</span>move_uploaded_file($_FILES["file"]["tmp_name"],
<span style="white-space:pre">				</span>"upload/" . $_FILES["file"]["name"]);
<span style="white-space:pre">				</span>echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
<span style="white-space:pre">			</span>}
<span style="white-space:pre">		</span>}
<span style="white-space:pre">	</span>}else {
<span style="white-space:pre">		</span>echo "Invalid file";
<span style="white-space:pre">	</span>}
?>

위의 스크립트는 이 파일이 존재하는지 확인하고, 존재하지 않으면 지정한 폴더로 복사합니다.
주석: 이 예는 파일을'upload'라는 새 폴더에 저장했습니다.

좋은 웹페이지 즐겨찾기