>백엔드 개발 >PHP 튜토리얼 >PHP를 사용한 파일 업로드에 대한 간단한 예제 및 지침

PHP를 사용한 파일 업로드에 대한 간단한 예제 및 지침

WBOY
WBOY원래의
2016-07-29 09:12:22773검색

파일 업로드

먼저 양식에서 파일 업로드

<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>

출력 설명 두 가지 점:

  1. type=file 입력으로 제출된 콘텐츠가 $_FILES 배열에 표시됩니다. 입력의 name 필드를 $_FILES 배열의 인덱스 로 사용하세요.
  2. 입력 유형=파일로 제출된 콘텐츠는 $_POST 배열에 계속 표시됩니다.

$_FILES배열의 각 파일에 해당하는 배열의 구조는 다음과 같습니다.

  • name 업로드된 파일의 파일명
  • type 업로드된 파일 종류
  • tmp_name PHP파일 업로드 후 임시저장됩니다. 디렉토리를 먼저 표시하고 tmp_name은 이 임시 파일을 표시합니다. 경로
  • error는 오류 코드
  • size 업로드된 파일의 크기를 바이트 단위로 저장합니다.

그래서 PHP파일 업로드 아이디어는 비교적 간단합니다. 파일이 업로드된 후 해당 정보가 $_FILES 배열에 저장됩니다. (예: 접미사 이름) 그런 다음 move_uploaded_file 함수를 사용하여 파일을 업로드 디렉터리에 임시로 복사합니다.

참고

  • from 양식은 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: move_uploaded_file - 수동
').addClass(' pre -번호 매기기').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

위 내용은 파일 업로드 및 인덱싱을 포함하여 PHP에서 파일을 업로드하기 위한 간단한 예제와 지침을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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