PHPStudy를 사용하여 PHP에서 파일 업로드를 테스트하려면 다음을 수행해야합니다.
테스트 환경 설정 :
localhost
)을 지정하고 루트 디렉토리를 선택한 다음 적절한 PHP 버전을 선택하십시오.파일 업로드에 대한 PHP 파일 생성 :
C:\phpStudy\WWW
)로 이동하십시오. 새 PHP 파일 (예 : upload.php
)을 작성하고 파일 업로드를 처리하는 데 필요한 코드를 작성하십시오. 기본 예는 다음과 같습니다.
<code class="php"> <form action="upload.php" method="post" enctype="multipart/form-data"> Select file to upload: <input type="file" name="fileToUpload" id="fileToUpload"> <input type="submit" value="Upload File" name="submit"> </form> <?php $target_dir = "uploads/"; $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); $uploadOk = 1; $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION)); if(isset($_POST["submit"])) { if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { echo "The file ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). " has been uploaded."; } else { echo "Sorry, there was an error uploading your file."; } } ?></code>
파일 업로드 테스트 :
http://localhost/upload.php
액세스하십시오.uploads
디렉토리에 성공적으로 업로드되었는지 확인하려면 출력을 확인하십시오.PHPStudy로 파일 업로드를 테스트 할 때는 다음과 같은 일반적인 문제가 발생할 수 있습니다.
uploads
디렉토리에 대한 쓰기 액세스가 있는지 확인하십시오.upload_max_filesize
및 post_max_size
에 대한 기본 설정이있어 더 큰 파일 업로드를 제한 할 수 있습니다. php.ini
에서 이러한 설정을 조정해야 할 수도 있습니다.php.ini
에서 max_execution_time
늘려이 문제를 완화 할 수 있습니다.fileinfo
)가 없을 수 있습니다. php.ini
에서 필요한 모든 확장이 활성화되어 있는지 확인하십시오.PHPStudy를 PHP에서 큰 파일 업로드를 처리하도록 구성하려면 다음 단계를 따르십시오.
php.ini
찾기 : phpstudy 설치에서 php.ini
파일을 찾으십시오. 일반적으로 사용중인 특정 PHP 버전의 php
폴더에 있습니다.파일 크기 설정 조정 :
php.ini
열고 upload_max_filesize
및 post_max_size
설정을 찾으십시오.더 큰 파일을 수용하기 위해 이러한 값을 늘리십시오. 예를 들어:
<code>upload_max_filesize = 100M post_max_size = 100M</code>
post_max_size
가 upload_max_filesize
만큼 커지는 지 확인하십시오.실행 시간 증가 :
max_execution_time
설정을 찾아서 더 긴 업로드 시간을 허용하도록 늘리십시오.
<code>max_execution_time = 300</code>
LimitRequestBody
와 같은 httpd.conf
파일에서 설정을 조정해야 할 수도 있습니다.PHPStudy로 파일 업로드를 테스트 할 때 다음 보안 조치를 구현하면 시스템을 보호 할 수 있습니다.
파일 유형 유효성 검증 : 파일 확장 및 마임 유형을 확인하여 특정 파일 유형을 업로드 할 수 있습니다. PHP의 finfo
확장을 사용하여 MIME 유형을 검증하십시오.
<code class="php">$finfo = finfo_open(FILEINFO_MIME_TYPE); $mime_type = finfo_file($finfo, $_FILES['fileToUpload']['tmp_name']); if (in_array($mime_type, ['image/jpeg', 'image/png'])) { // File type is valid } else { // File type is not valid } finfo_close($finfo);</code>
upload_max_filesize
설정과 스크립트의 추가 점검을 사용하여 과도하게 큰 파일이 업로드되지 않도록합니다.보안 파일 이름 지정 : 업로드 된 파일 이름을 바꾸어 기존 파일을 덮어 쓰는 것을 방지하고 악의적 인 코드가 포함 된 파일 이름을 저장하지 않도록하십시오. 타임 스탬프와 임의의 문자열의 조합을 고려하십시오.
<code class="php">$new_filename = uniqid() . '-' . $_FILES['fileToUpload']['name'];</code>
C:\phpStudy\WWW\uploads
C:\phpStudy\secure_uploads
와 같은 디렉토리에 파일을 저장하십시오.CSRF 보호 구현 : 토큰을 사용하여 파일 업로드 양식을 제출할 때 크로스 사이트 요청 위조 공격을 방지합니다.
<code class="php">session_start(); $token = bin2hex(random_bytes(32)); $_SESSION['csrf_token'] = $token; // In your HTML form <input type="hidden" name="csrf_token" value="<?php echo $token; ?>"> // And in your PHP script when processing the upload if ($_POST['csrf_token'] !== $_SESSION['csrf_token']) { die("CSRF token mismatch"); }</code>
이러한 보안 조치를 구현하면 PHPStudy 테스트 환경에서 파일 업로드와 관련된 위험을 크게 줄일 수 있습니다.
위 내용은 PHPStudy를 사용하여 PHP에서 파일 업로드를 테스트하려면 어떻게합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!