이 글에서는 주로 PHP 파일 업로드 처리 방법을 소개하고, PHP 파일 업로드 작업에서 발생하는 문제와 관련 솔루션을 예제 형식으로 분석합니다. 도움이 필요한 친구는 참고할 수 있습니다.
이 글의 예제에서는 PHP 파일에 대해 설명합니다. 업로드 처리 방법. 자세한 내용은 다음과 같습니다.
최근에 오랫동안 고민했던 내용을 공유하고 싶습니다.
PHP의 업로드 메커니즘은 완전히 캡슐화되어 있습니다. 단 몇 줄의 코드로 구현하려면
파일을 임시 디렉터리에 업로드하세요. –> 지정된 디렉터리에 move_uploadde_file()을 사용하세요.
이것은 PHP 업로드 프로세스이거나 다음과 같습니다. 중간에 몇 가지 확인을 수행합니다. 예를 들어, 문서가 업로드를 통해 제출되었는지, 아니면 당사
에서 파일 확장자를 허용하는지 및 일련의 확인을 통해 확인합니다. 제가 제시한 간단한 코드는 출발점이라고 볼 수 있습니다.
$targetFolder = '/uploads'; // 定义根目录 if (!empty($_FILES)) { $tempFile = $_FILES['Filedata']['tmp_name']; if(is_uploaded_file($tempFile)) { $targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder; $targetFile = rtrim($targetPath,'/') . '/' . $_FILES['Filedata']['name']; $fileTypes = array('jpg','jpeg','gif','png'); // 允许的后缀扩展 $fileParts = pathinfo($_FILES['Filedata']['name']); if (in_array($fileParts['extension'],$fileTypes)) { move_uploaded_file($tempFile,$targetFile); echo '1'; } else { echo '非法上传文档.'; } }else { echo "非法上传文件"; } }
위 방법은 기본적으로 파일 업로드 요구 사항을 충족합니다. 하지만 그것은 나에게 필요한 것이 아닙니다.
업로드 기능
요구 사항: 먼저 클릭하여 문서를 업로드한 다음 업로드 파일을 선택하세요. JS가 업로드되면 값이 반환되며 문서 이름 상자에 현재 타임스탬프 이름과 함께 파일이 표시됩니다.
그런 다음 제출을 클릭하여 양식을 제출하세요.
서버는 제출된 양식을 처리하고 업로드된 파일의 이름을 바꿉니다.
문제도 발생합니다. 서버는 IIS이고 매핑을 사용하여 구현한 가상 디렉터리입니다.
이 경우 $_SERVER['DOCUMENT_ROOT']가 PHP 사이트의 루트 디렉터리에 없습니다
업로드 기능이 완료되었으나 해당 파일을 다운로드할 수 없습니다. 서버 보안상의 이유로 여전히 PHP 사이트에 파일을 배치할 계획입니다.
그러다가 생각의 한계에 빠졌습니다.
다시 생각해 보세요:
왜 PHP의 업로드 메커니즘을 다시 구현할 필요가 없는 걸까요?
PHP가 먼저 임시 디렉터리에 파일을 넣지 않나요? 그렇다면 JS 업로드가 성공한 후의 디렉토리도 임시 디렉토리인
라고 가정하고 양식을 다시 제출할 때 파일을 복사하는 이유는 무엇입니까? 필요한 기능을 완료하려면 지정된 디렉토리로 이동하십시오.
PHP에는 파일 복사 기능 Copy()가 있으며 rename() 기능과 협력합니다. 이로써 업로드된 파일의 2차 이동 및 이름변경이 완료됩니다.
참고: 윈도우 플랫폼에서 0바이트 파일을 복사하는 경우 copy()는 FALSE를 반환하지만 파일은 올바르게 복사됩니다.
그러면 PHP는 파일 처리에 있어서 Liunx의 파일 처리 메커니즘을 적극적으로 참조합니다. PHP의 파일 작업 효율성은 I/O 쓰기 및 운영 체제와 관련이 있습니다.
요약: 위 내용이 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.
관련 권장 사항:
phpApache로 테스트한 후 문자가 깨지는 문제에 대한 해결 방법
php쿠키를 사용하여 웹 페이지에서 사용자 이름과 비밀번호를 기억하는 기능 구현
PHP Curl을 이용하여 구현한 시뮬레이션 로그인 및 데이터 캡쳐 기능 예시
위 내용은 PHP 파일 업로드 처리 사례에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!