PHP로 파일 제출

WBOY
풀어 주다: 2023-05-24 09:30:01
원래의
1086명이 탐색했습니다.

PHP는 양식 데이터 처리, 동적 페이지 생성 등에 사용할 수 있는 서버측 스크립팅 언어입니다. 일반적인 애플리케이션 시나리오 중 하나는 양식을 통해 파일을 업로드하는 것입니다. 이 기사에서는 업로드 양식 처리, 업로드된 파일 저장, 업로드된 파일의 유형 및 크기 제한 등을 포함하여 PHP의 파일 업로드 기능을 소개합니다.

1. 업로드 양식 처리

HTML에서는 양식 태그를 통해 양식을 생성하고 입력 태그에 type="file" 속성을 사용하여 파일 업로드를 허용할 수 있습니다. PHP에서는 $_FILES 전역 변수를 사용하여 업로드된 파일 정보를 얻을 수 있습니다.

양식에 파일을 업로드하기 위한 입력 태그와 제출 버튼이 포함되어 있다고 가정해 보겠습니다.




다음을 수행해야 합니다. 여기를 주목하세요:

  1. action 속성은 양식 제출 주소, 즉 파일 업로드를 위한 처리 스크립트를 지정합니다. 여기서는 upload.php 파일을 사용합니다.
  2. method 속성은 양식 제출 방법을 지정하며 여기서는 post 방법이 사용됩니다.
  3. enctype 속성은 양식 데이터의 인코딩 방법을 지정합니다. 파일 업로드를 허용하려면 multipart/form-data를 사용해야 합니다.

다음으로 upload.php 파일에서 파일 업로드 요청을 처리합니다.

2. 업로드된 파일의 저장

먼저 업로드된 파일이 존재하는지 확인해야 합니다. 존재하는 경우 $_FILES 배열을 통해 업로드된 파일의 관련 정보를 얻을 수 있습니다.

if(isset($_FILES ["fileToUpload"])) {

$file_name = $_FILES["fileToUpload"]["name"];
$file_tmp = $_FILES["fileToUpload"]["tmp_name"];
$file_size = $_FILES["fileToUpload"]["size"];
로그인 후 복사

}

이 중 파일 이름은 $name 속성을 통해 얻을 수 있고 파일 크기는 $size 속성을 통해 얻을 수 있으며 임시 파일 경로는 다음을 통해 얻을 수 있습니다. $tmp_name 속성.

다음으로 업로드된 파일을 대상 폴더로 이동해야 합니다. 여기에서 move_uploaded_file() 함수를 사용하세요:

$target_dir = "uploads/";
$target_file = $target_dir($file_name);
if( move_uploaded_file ($file_tmp, $target_file)) {

echo "The file ". basename($file_name). " has been uploaded.";
로그인 후 복사

} else{

echo "Sorry, there was an error uploading your file.";
로그인 후 복사

}

위 코드에서 $target_dir은 업로드된 파일의 저장 디렉터리이며, 여기서 basename() 함수를 사용하여 파일을 가져옵니다. 이름. 파일 이동은 move_uploaded_file() 함수를 사용합니다. 여기서 첫 번째 매개변수는 파일의 임시 경로이고 두 번째 매개변수는 대상 경로입니다. 파일이 성공적으로 이동되면 성공적인 업로드 메시지가 사용자에게 반환됩니다. 그렇지 않으면 실패한 업로드 메시지가 반환됩니다.

3. 업로드되는 파일의 유형과 크기를 제한하세요

업로드 시스템의 보안과 성능을 보장하려면 업로드되는 파일을 제한해야 합니다. 여기에는 파일 형식과 파일 크기가 모두 포함됩니다.

  1. 파일 형식 제한

우리는 업로드된 파일 형식이 합법적인지 확인하기 위해 PHP의 in_array() 함수를 사용합니다. 특히, 업로드가 허용되는 파일 형식의 배열을 정의한 다음 in_array() 함수를 사용하여 업로드된 파일 형식이 업로드가 허용되는 파일 형식의 배열에 있는지 확인해야 합니다.

$allowed_types = array('jpg', 'jpeg', 'png', 'gif');
$file_type = strtolower(pathinfo($file_name,PATHINFO_EXTENSION));
if(in_array($file_type, $allowed_types) ){

// 合法文件类型
로그인 후 복사

} else{

echo "Sorry, only JPG, JPEG, PNG, GIF files are allowed.";
로그인 후 복사

}

위 코드에서는 pathinfo() 함수를 사용하여 파일 접미사 이름을 얻고, strtolower() 함수는 이를 소문자로 변환하고, in_array() 함수는 업로드가 허용되는 파일 형식 배열에 있는지 확인하는 데 사용됩니다.

  1. 파일 크기 제한

우리는 PHP의 파일 업로드 구성을 사용하여 업로드된 파일의 크기를 제한합니다. 이는 php.ini 파일에서 설정할 수 있습니다. 예:

post_max_size=8M
upload_max_filesize=2M

여기 post_max_size POST 데이터의 최대 길이를 의미하며, upload_max_filesize는 업로드된 파일의 최대 크기를 나타냅니다. 파일 크기가 제한을 충족하지 않으면 $_FILES 배열에 업로드된 파일에 대한 정보가 포함되지 않습니다.

요약:

PHP에서 파일 업로드 기능을 구현하려면 다음 단계가 필요합니다.

  1. 업로드 파일 입력 태그와 제출 버튼이 포함된 양식을 만듭니다.
  2. 업로드된 파일 처리 스크립트에서 $_FILES 전역 변수를 사용하여 업로드된 파일 정보를 가져옵니다.
  3. 업로드된 파일을 대상 폴더로 이동하세요.
  4. 파일 형식, 파일 크기 등 업로드된 파일에 보안 및 성능 제한을 적용합니다.

위의 방법을 통해 파일 업로드 기능을 구현하면 웹 애플리케이션에 더 풍부한 기능과 더 나은 사용자 경험을 제공할 수 있습니다.

위 내용은 PHP로 파일 제출의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿