> 백엔드 개발 > PHP 튜토리얼 > PHP에서 파일을 올바르게 업로드하고 잠재적인 오류를 처리하는 방법은 무엇입니까?

PHP에서 파일을 올바르게 업로드하고 잠재적인 오류를 처리하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-12-09 13:02:18
원래의
569명이 탐색했습니다.

How to Correctly Upload Files in PHP and Handle Potential Errors?

PHP를 사용하여 파일 업로드

지정된 폴더에 파일을 업로드하는 것은 많은 웹 애플리케이션에서 일반적인 작업입니다. 이 질문은 이 작업을 달성하기 위한 간단한 PHP 코드 블록을 탐색합니다.

$folder = "upload/";
if (is_uploaded_file($HTTP_POST_FILES['filename']['tmp_name'])) {   
    if (move_uploaded_file($HTTP_POST_FILES['filename']['tmp_name'], $folder . $HTTP_POST_FILES['filename']['name'])) {
         echo "File uploaded";
    } else {
         echo "File not moved to destination folder. Check permissions";
    };
} else {s
     echo "File is not uploaded";
}; 
로그인 후 복사

그러나 실행 시 오류가 발생합니다.

Notice: Undefined variable: HTTP_POST_FILES in C:\wamp\www\sdg\import\ips.php on line 3
로그인 후 복사

해결책:

이 오류는 더 이상 사용되지 않는 변수 $HTTP_POST_FILES를 사용하여 발생합니다. 대신 $_FILES를 사용하세요:

$folder = "upload/";
if (is_uploaded_file($_FILES['filename']['tmp_name'])) {   
    if (move_uploaded_file($_FILES['filename']['tmp_name'], $folder . $_FILES['filename']['name'])) {
         echo "File uploaded";
    } else {
         echo "File not moved to destination folder. Check permissions";
    };
} else {s
     echo "File is not uploaded";
}; 
로그인 후 복사

향상된 PHP 코드:

다음의 향상된 PHP 코드는 유형 검사 및 파일 크기 유효성 검사를 포함한 향상된 기능을 제공합니다.

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

if (isset($_POST["submit"])) {
    // Check file type
    if (!in_array($imageFileType, $allowedTypes)) {
        $msg = "Type is not allowed";
    } 
    // Check if file exists
    elseif (file_exists($target_file)) {
        $msg = "Sorry, file already exists.";
    } 
    // Check file size
    elseif ($_FILES["fileToUpload"]["size"] > 5000000) {
        $msg = "Sorry, your file is too large.";
    } 
    // Move file
    elseif (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        $msg = "The file " . basename($_FILES["fileToUpload"]["name"]) . " has been uploaded.";
    }
}
?>
로그인 후 복사

HTML 코드:

<form action="upload.php" method="post">
로그인 후 복사

이 개선된 코드는 허용된 파일 형식만 업로드되도록 하고, 파일 이름 중복을 방지하며, 파일 크기를 제한하여 서버 과부하를 방지합니다.

위 내용은 PHP에서 파일을 올바르게 업로드하고 잠재적인 오류를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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