>백엔드 개발 >PHP 튜토리얼 >PHP에서 파일을 업로드할 때 \'정의되지 않은 변수: HTTP_POST_FILES\' 오류가 발생하는 이유는 무엇입니까?

PHP에서 파일을 업로드할 때 \'정의되지 않은 변수: HTTP_POST_FILES\' 오류가 발생하는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-10 01:57:09379검색

Why Am I Getting the

PHP를 사용하여 파일 업로드: "정의되지 않은 변수: HTTP_POST_FILES" 오류 문제 해결

PHP를 사용하여 서버에 파일을 업로드하는 과정은 간단할 수 있습니다. . 그러나 프로세스 중에 발생할 수 있는 오류를 해결하는 것이 중요합니다.

문제:
PHP를 사용하여 파일을 업로드하려고 할 때 오류가 발생합니다. "주의: 정의되지 않은 변수: HTTP_POST_FILES".

원인:
$HTTP_POST_FILES 변수는 업로드된 파일 정보를 저장하는 전역 배열을 의미합니다. 그러나 PHP 4.1.0부터 더 이상 사용되지 않으며 사용이 권장되지 않습니다.

해결책:
최신 PHP 버전에서는 업로드된 파일 데이터에 액세스하기 위한 다른 구조를 기대합니다. $HTTP_POST_FILES 대신 다음 방법을 사용하십시오.

$_FILES["file_name"]["key"]

여기서:

  • file_name은 파일이 선택된 입력 필드의 이름입니다.
  • 키는 액세스되는 파일의 특정 측면입니다(예: "이름", "유형", "크기", "tmp_name").

예제 코드:

다음 개선된 PHP 코드는 파일 업로드 모범 사례를 준수합니다.

$target_dir = "upload/";
$target_file = $target_dir . basename($_FILES["filename"]["name"]);
$imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));
$allowedTypes = ['jpg', 'png'];

if (isset($_POST["submit"])) {
    // Check file type
    if (!in_array($imageFileType, $allowedTypes)) {
        echo "Type is not allowed";
    }
    // Check if file already exists
    elseif (file_exists($target_file)) {
        echo "Sorry, file already exists.";
    }
    // Check file size
    elseif ($_FILES["filename"]["size"] > 5000000) {
        echo "Sorry, file is too large.";
    } else {
        // Upload file
        if (move_uploaded_file($_FILES["filename"]["tmp_name"], $target_file)) {
            echo "File uploaded successfully.";
        }
    }
}

위 내용은 PHP에서 파일을 업로드할 때 \'정의되지 않은 변수: HTTP_POST_FILES\' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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