>  기사  >  백엔드 개발  >  다음은 귀하의 기사를 기반으로 한 질문 형식의 몇 가지 기사 제목입니다. * **PHP에서 여러 파일 업로드: `move_uploaded_file`이 실패하는 이유와 해결 방법은 무엇입니까?** * **다중 파일 업로드

다음은 귀하의 기사를 기반으로 한 질문 형식의 몇 가지 기사 제목입니다. * **PHP에서 여러 파일 업로드: `move_uploaded_file`이 실패하는 이유와 해결 방법은 무엇입니까?** * **다중 파일 업로드

Patricia Arquette
Patricia Arquette원래의
2024-10-26 04:13:02498검색

Here are a few article titles in a question format based on your article:

* **Uploading Multiple Files in PHP: Why Does `move_uploaded_file` Fail, and How to Fix It?** 
* **Multiple File Upload with jQuery and PHP:  How to Correctly Loop and Move Uploade

여러 파일 업로드 시 어려움: PHP 및 jQuery 솔루션

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.