PHP에서는 파일 업로드 기능을 이용하여 파일을 업로드할 수 있으며, 양식을 통해 제출해야 하는 파일을 쉽게 첨부하여 업로드할 수 있습니다. 사용자는 문서 형식, 이미지 형식, PDF 형식 등 다양한 유형의 파일을 업로드할 수 있습니다. 이러한 종류의 파일에는 .docx, .jpeg, .pdf 등과 같은 확장자가 제공됩니다. 이러한 종류의 파일은 해당 크기 이상 업로드가 허용되지 않도록 파일 크기가 설정됩니다. 이는 수동으로 데이터를 입력하던 사용자가 이제 이 옵션을 선택하는 고급 기능입니다.
PHP를 사용하면 양식을 사용하여 서버에 파일을 업로드하는 것이 매우 쉽고 데이터도 다른 것에 비해 안전합니다. 구성 파일 "php.ini" 파일에는 업로드할 파일에 대해 설정해야 하는 변수가 있으며 업로드 기능을 활성화하려면 이 변수를 ON으로 설정해야 하는 "file_uploads"라고 합니다. 서버에 파일을 업로드하려면 몇 가지 단계를 거쳐야 합니다.
무료 소프트웨어 개발 과정 시작
웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등
양식을 사용하여 파일이 서버에 업로드되기 전에 몇 가지 확인 사항이 있습니다. 이러한 확인을 업로드된 파일의 유효성 검사라고 합니다.
다음은 개발자가 양식의 유효성을 검사하기 위해 코드하는 몇 가지 중요한 사항입니다.
파일을 업로드하려면 이 변수의 값이 ON이어야 합니다. ON이 아니면 파일을 서버에 업로드할 수 없습니다. 따라서 항상 ON 상태여야 합니다.
이 지시문은 양식을 사용하여 서버에 업로드할 수 있는 파일의 최대 크기를 구성하는 데 사용됩니다. 사용자가 업로드한 파일의 크기를 확인하는 일종의 검사입니다. 파일의 기본 크기는 2M(2MB)로 설정되어 있으며, 개발자가 파일 크기를 늘릴 수 있는 .htaccess 파일을 사용하여 이러한 설정을 덮어쓸 수 있습니다. 2MB는 오늘날의 표준으로는 그다지 많지 않으므로 이를 늘려야 할 수도 있습니다. 파일을 업로드하려고 할 때 파일 크기가 upload_max_filesize를 초과한다는 오류가 발생하는 경우 값을 늘려야 합니다. 그렇다면 post_max_size도 늘리십시오.
사용자가 업로드한 파일을 저장하는 데 사용할 임시 디렉터리를 설정합니다. 대부분의 경우 이 설정에 대해 걱정할 필요가 없습니다. 설정하지 않으면 시스템 기본값에서 사용할 수 있는 임시 디렉터리가 자동으로 설정됩니다.
post_max_size 지시어를 사용하면 POST 메서드로 업로드되는 데이터의 최대 크기를 설정할 수 있습니다. 파일은 POST 요청에 의해 업로드되므로 값은 upload_max_filesize에 설정한 것보다 커야 합니다. 예를 들어 upload_max_filesize가 20M(20MB)인 경우 post_max_size를 24M로 설정해야 할 수도 있습니다.
사용자가 한 번에 업로드할 수 있는 최대 파일 수를 설정할 수 있습니다. 사용자당 한 번에 기본 개수는 20개입니다.
스크립트가 사용자의 입력 데이터를 구문 분석하는 데 허용되는 시간(초)입니다. 대용량 파일 업로드를 처리하는 경우 합리적인 값으로 설정해야 합니다. 60(60초)이며 대부분의 앱에 적합한 값입니다.
메모리 제한 지시어는 스크립트가 서버에서 소비할 수 있는 최대 메모리 양을 나타냅니다. 대용량 파일을 업로드하는 동안 문제가 발생하는 경우 post_max_size 지시어에 설정한 것보다 더 큰 지시어 값을 설정해야 합니다. 기본적으로 값은 128M(128MB)로 설정되어 있으므로 post_max_size와 upload_max_filesize가 매우 크지 않는 한 걱정하지 않으셔도 됩니다.
이 지시어는 스크립트가 서버에서 실행될 수 있는 최대 시간(초) 동안 사용됩니다. 대용량 파일을 업로드하는 동안 문제가 발생하는 경우 값을 60(1분)과 같이 초 이상으로 늘리는 것을 고려할 수 있으며 이는 대부분의 애플리케이션에서 잘 작동합니다.
다음은 언급된 예입니다::
코드:
<!DOCTYPE html> <html> <body> <form action="uploadimage.php" method="POST" enctype="multipart/form-data"> Select any image to upload: <input type="File" name="FileUpload" id="FileUpload"> <input type="submit" value="Upload" name="SUBMIT"> </form> </body> </html>
출력:
코드:
<!DOCTYPE html> <html lang="en"> <head> <title>Photo Upload Form</title> </head> <body> <form action="upload.php" method="POST" enctype="multipart/form-data"> <h1>Upload File</h1> <label for="fileSelect">Filename:</label> <input type="file" name="photo" id="FileSelect"> <input type="submit" name="SUBMIT" value="Upload Photo"> <p><strong>Note:</strong> Only .jpg, .jpeg, .gif, .png formats allowed to a max size of 2 MB larger than that cannot not be uploaded.</p> </form> </body> </html>
출력:
코드:
<!DOCTYPE html> <html> <body> <form action="upload.php" method="POST" enctype="multipart/form-data"> Select a file to upload: <input type="file" name="FileToUpload"/> <input type="submit" value="Upload" name="submit"/> </form> </body> </html>
출력:
코드:
<?php $target_path = "c:/"; $target_path = $target_path.basename( $_FILES['fileToUpload']['name']); if(move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $target_path)) { echo "File has been uploaded successfully!"; } else { echo "Sorry, file not uploaded, please check and try again!"; } ?>
Output:
In the above examples, the user can see the screen that is present in the snapshots. Users will attach the document by clicking the “choose file” option. The file will get attached once the user selects the file from his local machine and clicks on the Upload button to submit the documents to the server. The user will then be prompted a message stating that the file has been uploaded successfully.
In this article, we discussed how a user can upload a file to the server using the form and how an uploaded file can be validated in various forms, and the server restrictions for uploading a file. The user might not understand the process of the backend but the developer has to code in such a way that the document uploaded by the user should be correct and the data is secured.
위 내용은 PHP로 파일 업로드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!