파일 업로드예
먼저 양식에서 파일 업로드
<code><span><<span>html</span>></span><span><<span>body</span>></span><span><<span>form</span><span>action</span>=<span>"upload.php"</span><span>method</span>=<span>"post"</span><span>enctype</span>=<span>"multipart/form-data"</span>></span><span><<span>input</span><span>type</span>=<span>"file"</span><span>name</span>=<span>"file"</span>/></span><span><<span>input</span><span>type</span>=<span>"submit"</span><span>value</span>=<span>"submit"</span><span>name</span>=<span>"submit"</span>></span><span></<span>form</span>></span><span></<span>body</span>></span><span></<span>html</span>></span></code>
가 가능한 양식을 작성하고, 제출 후 이를 처리하려면 upload.php
에 맡기겠습니다. 가장 간단한 업로드 핸들러를 작성해 보겠습니다.
<code><span><?php</span> var_dump(<span>$_POST</span>); var_dump(<span>$_FILES</span>); <span>$uploadPath</span> = <span>'./upload/'</span>; <span>$tempFileName</span> = <span>$_FILES</span>[<span>'file'</span>][<span>'tmp_name'</span>]; <span>$uploadFileName</span> = <span>$uploadPath</span>.<span>$_FILES</span>[<span>'file'</span>][<span>'name'</span>]; <span>if</span>(move_uploaded_file(<span>$tempFileName</span>,<span>$uploadFileName</span>)){ <span>echo</span><span>'upload success'</span>; }<span>else</span>{ <span>echo</span><span>'upload fail'</span>; }</code>
제출 페이지를 방문하여 다음 출력을 볼 수 있습니다.
<code><span>array</span> (size=<span>1</span>) <span>'submit'</span> => string <span>'submit'</span> (length=<span>6</span>) <span>array</span> (size=<span>1</span>) <span>'file'</span> => <span>array</span> (size=<span>5</span>) <span>'name'</span> => string <span>'laravel-quickstart-welcome.png'</span> (length=<span>30</span>) <span>'type'</span> => string <span>'image/png'</span> (length=<span>9</span>) <span>'tmp_name'</span> => string <span>'/tmp/phpYKQKaY'</span> (length=<span>14</span>) <span>'error'</span> => int <span>0</span><span>'size'</span> => int <span>91148</span> upload success</span></code>
출력 설명 두 가지 점:
$_FILES
배열에 표시됩니다. 입력의 name
필드를 $_FILES
배열의 인덱스 로 사용하세요. $_POST
배열에 계속 표시됩니다. $_FILES
배열의 각 파일에 해당하는 배열의 구조는 다음과 같습니다.
name
업로드된 파일의 파일명
type
업로드된 파일 종류
tmp_name
PHP파일 업로드 후 임시저장됩니다. 디렉토리를 먼저 표시하고 tmp_name은 이 임시 파일을 표시합니다. 경로 error
는 오류 코드 size
업로드된 파일의 크기를 바이트 단위로 저장합니다. 그래서 PHP파일 업로드 아이디어는 비교적 간단합니다. 파일이 업로드된 후 해당 정보가 $_FILES
배열에 저장됩니다. (예: 접미사 이름) 그런 다음 move_uploaded_file 함수를 사용하여 파일을 업로드 디렉터리에 임시로 복사합니다.
참고
enctype="multipart/form-data"
속성을 설정해야 하며, 그렇지 않으면 업로드할 수 없습니다. 업로드 경로에 폴더가 있어야 하며, 그렇지 않으면 오류가 발생합니다
<code>failed to open stream: No such file or directory </code>
업로드된 파일을 복사하는 데 다른 기능을 사용하지 말고 move_uploaded_file
기능을 사용하세요. 이 기능은 임시 파일이 PHP를 통해 업로드된 파일인지 확인하므로 실수로 시스템 파일을 업로드 디렉터리에 복사하는 것을 방지할 수 있습니다.
is_uploaded_file
를 사용하여 파일이 PHP를 통해 업로드되었는지 확인할 수 있습니다. move_uploaded_file
의 두 번째 매개변수 경로에 해당하는 파일이 이미 존재하는 경우 덮어쓰게 됩니다. 참고:
위 내용은 파일 업로드 및 인덱싱을 포함하여 PHP에서 파일을 업로드하기 위한 간단한 예제와 지침을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.