>  기사  >  백엔드 개발  >  PHP 파일 업로드

PHP 파일 업로드

巴扎黑
巴扎黑원래의
2016-11-30 09:35:01948검색

PHP를 통해 파일을 서버에 업로드할 수 있습니다.

파일 업로드 양식 만들기

사용자가 양식에서 파일을 업로드할 수 있도록 하면 매우 유용합니다.

파일 업로드는 다음 HTML 양식을 참조하세요.




enctype="multipart/form-data">





< ; /form>



이 양식에 대한 다음 정보를 참고하세요.

태그의 type="file" 속성은 입력이 파일로 처리되어야 함을 지정합니다. 예를 들어 브라우저에서 미리 볼 때 입력 상자 옆에 찾아보기 버튼이 표시됩니다.

참고: 사용자가 파일을 업로드하도록 허용하는 것은 엄청난 보안 위험을 초래합니다. 신뢰할 수 있는 사용자만 파일 업로드 작업을 수행하도록 허용하십시오.

업로드 스크립트 만들기

"upload_file.php" 파일에는 파일 업로드를 위한 코드가 포함되어 있습니다:

if ($_FILES["file "] ["error"] > 0)
{
echo "오류: " . $_FILES["file"]["error"] . "
";
}
else
{
echo "업로드: " . $_FILES["file"]["name"] . "
";
echo "$_FILES [" 파일"]["유형"] . "
";
echo "크기: " . ($_FILES["file"]["size"] / 1024) . /> ;";
echo "저장 위치: " . $_FILES["file"]["tmp_name"];
}
?>

PHP를 사용하여 전역 배열 $_FILES를 사용하면 클라이언트 컴퓨터에서 원격 서버로 파일을 업로드할 수 있습니다.

첫 번째 매개변수는 양식의 입력 이름이고 두 번째 첨자는 "name", "type", "size", "tmp_name" 또는 "error"일 수 있습니다. 예:

$_FILES["file"]["name"] - 업로드된 파일의 이름

$_FILES["file"]["type"] - 업로드된 파일 유형

$_FILES["file"]["size"] - 업로드된 파일의 크기(바이트)

$_FILES["file"]["tmp_name"] - 이름 서버에 저장된 파일의 임시 복사본

$_FILES["file"]["error"] - 파일 업로드로 인해 발생한 오류 코드

매우 간단한 파일입니다. 방법을 업로드합니다. 보안상의 이유로 파일 업로드 권한을 가진 사람에 대한 제한을 추가해야 합니다.

업로드 제한

이 스크립트에서는 파일 업로드에 제한을 추가했습니다. 사용자는 .gif 또는 .jpeg 파일만 업로드할 수 있으며 파일 크기는 20kb 미만이어야 합니다.


if ((($_FILES["file"][ "유형"] == "이미지/gif")
|| ($_FILES["파일"]["유형"] == "이미지/jpeg")
|| ]["type "] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
{
if ($_FILES[" file"][ "error"] > 0)
{
echo "오류: " . $_FILES["file"]["error"] . "
";
}
else
{
echo "업로드: " . $_FILES["file"]["name"] . "
";
echo "유형: " . _FILES["file"]["type"] . "
";
echo "크기: " . ($_FILES["file"]["size"] / 1024) . br /> ";
echo "저장 위치: " . $_FILES["file"]["tmp_name"];
}
}
else
{
echo " Invalid file";
}

?>

참고: IE의 경우 인식되는 jpg 파일 형식은 pjpeg, FireFox의 경우 jpeg여야 합니다.

업로드된 파일 저장

위의 예에서는 서버의 PHP 임시 폴더에 업로드된 파일의 임시 복사본을 생성합니다.

이 임시 복사본은 스크립트가 끝나면 사라집니다. 업로드된 파일을 저장하려면 다른 위치에 복사해야 합니다.

if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type "] == "이미지/jpeg")
|| ($_FILES["file"]["type"] == "이미지/pjpeg"))
&& ($_FILES["file"][ "size"] < 20000))
 {
 if ($_FILES["file"]["error"] > 0)
   {
   echo "반환 코드: " . $_FILES["파일"]["오류"] . "
";
   }
 else
   {
   echo "업로드: " . $_FILES["파일"]["이름"] . "
";
   echo "유형: " . $_FILES["파일"]["유형"] . "
";
   echo "크기: " . ($_FILES["파일"]["크기"] / 1024) . " Kb
";
   echo "임시 파일: " . $_FILES["파일"]["tmp_name"] . "
";

   if (file_exists("upload/" . $_FILES["file"]["name"]))
     {
     echo $_FILES[" 파일"]["이름"] . "가 이미 존재합니다. ";
     }
   else
     {
     move_uploaded_file($_FILES["file"]["tmp_name"],
     "upload/" . $_FILES["file" ]["이름"]);
     echo "저장 위치: " . "업로드/" . $_FILES["파일"]["이름"];
     }
   }
 }
else
 {
 echo "잘못된 파일";
 }
? >

상위면의 脚本检测了是否已存는 此文件,如果不存在,则把文件拷贝到指夹。

注释: 这个例子把文件保存到了name为 "업로드" 的新文件夹。


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.