이 글에서는 주로 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 쓰기 및 운영 체제와 관련이 있습니다.
요약: 위 내용이 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.
관련 권장사항:
PHP는 post 메소드를 사용하여 json 데이터를 전송하기 위해 인터페이스를 호출합니다.
PHP를 Ueditor와 결합하고 이미지를 수정하는 방법 업로드 경로
위 내용은 PHP 파일 업로드 처리 예시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!