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 중국어 웹사이트의 기타 관련 기사를 참조하세요!