PHP를 사용하면서 여러 파일을 업로드하려고 할 때 장애물에 직면했습니다. 제공된 코드 조각을 자세히 살펴보고 문제를 해결하여 이 문제를 극복할 수 있는 방법을 살펴보겠습니다.
HTML 파일에는 다중 선택이 가능한 파일 입력 필드가 있는 양식이 있습니다. (다중 = 다중). 버튼을 클릭하면 sendfile() 함수가 트리거되어 업로드 프로세스가 시작됩니다. sendfile() 함수는 FormData 객체를 생성하고 선택한 파일을 반복하여 데이터 페이로드에 추가합니다. 그런 다음 jQuery의 ajax() 함수를 사용하여 데이터를 uploadfile.php로 전송하여 처리합니다.
PHP 파일(uploadfile.php)은 대상 디렉터리를 정의하고 업로드된 파일을 하나씩 이동하려고 시도합니다.
제공된 코드는 업로드된 각 파일을 한 번에 하나씩 이동하려고 잘못 시도합니다. 이는 단일 파일에 대해서는 작동하지만 다중 선택에는 작동하지 않습니다. 문제의 핵심은 for 루프의 구성에 있습니다.
적절한 해결 방법은 보다 포괄적인 foreach 루프를 사용하여 업로드된 파일을 반복하는 것입니다. 이 접근 방식을 사용하면 각 파일이 처리되어 대상 디렉터리로 이동됩니다.
이를 달성하려면 uploadfile.php에 대해 다음 조정이 필요합니다.
<code class="php">foreach ($_FILES['myfile']['name'] as $i => $name) { if (move_uploaded_file($_FILES['myfile']['tmp_name'][$i], $target . $name)) { echo 'Successfully copied'; } else { echo 'Sorry, could not copy'; } }</code>
이 개선된 버전은 여러 파일을 올바르게 처리합니다. 각 파일의 이름과 임시 경로를 반복하여 파일을 개별적으로 이동할 수 있습니다. 루프는 선택된 모든 파일이 지정된 대상 디렉토리로 이동되도록 보장합니다.
위 내용은 다음은 귀하의 기사를 기반으로 한 질문 형식의 몇 가지 기사 제목입니다. * **PHP에서 여러 파일 업로드: `move_uploaded_file`이 실패하는 이유와 해결 방법은 무엇입니까?** * **다중 파일 업로드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!