>  기사  >  백엔드 개발  >  파일이 PHP에 업로드되었는지 확실하게 확인하는 방법은 무엇입니까?

파일이 PHP에 업로드되었는지 확실하게 확인하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-01 06:19:31823검색

How to Reliably Determine if a File Was Uploaded in PHP?

PHP에서 사용자 파일 업로드 평가

사용자 입력을 확인할 때 파일 업로드의 무결성을 보장하는 것이 중요합니다. 그러나 일부 양식에서는 선택적 업로드가 허용될 수 있습니다. 이러한 경우 파일을 제출하지 않은 사용자에 대한 유효성 검사를 건너뛰는 것이 필수적입니다.

파일 업로드 존재 확인

파일이 업로드되었는지 확인하려면 $_FILES를 사용합니다. ['myfile']['size'] <= 0은 신뢰할 수 없습니다. 대신 is_uploaded_file() 함수가 더 정확한 표시기를 제공합니다.

is_uploaded_file() 사용

<code class="php">if(!file_exists($_FILES['myfile']['tmp_name']) || !is_uploaded_file($_FILES['myfile']['tmp_name'])) {
    echo 'No upload';
}

공식 문서에 설명된 대로 이 함수는 다음과 같습니다.

  • HTTP POST 방식을 통해 파일이 업로드되었는지 확인합니다.
  • 의도하지 않은 파일에 액세스하려는 악의적인 시도로부터 보호합니다.

샘플 구현

FileUpload 클래스의 다음 예를 고려해 보세요.

public function fileUploaded()
{
    if(empty($_FILES)) {
        return false;       
    } 
    $this->file = $_FILES[$this->formField];
    if(!file_exists($this->file['tmp_name']) || !is_uploaded_file($this->file['tmp_name'])){
        $this->errors['FileNotExists'] = true;
        return false;
    }   
    return true;
}

이 방법은 먼저 $_FILES 배열이 비어 있는지 확인합니다. 그렇지 않은 경우 업로드된 파일을 검색하고 file_exists()를 사용하여 파일의 존재 여부를 확인합니다. 마지막으로 is_uploaded_file()은 파일이 실제로 업로드되었는지 확인합니다.

위 내용은 파일이 PHP에 업로드되었는지 확실하게 확인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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