>  기사  >  백엔드 개발  >  PHP 파일 업로드 프로세스는 무엇입니까?

PHP 파일 업로드 프로세스는 무엇입니까?

coldplay.xixi
coldplay.xixi원래의
2021-02-25 16:40:563112검색

php 파일 업로드 프로세스: 먼저 PHP 파일을 구성하고 프런트 엔드 양식을 설정한 다음 기본적으로 임시 파일을 설정 디렉터리에 저장한 다음 마지막으로 파일 배열에서 오류 속성을 판단하고 처리합니다. 프런트 엔드 유형, 크기 제한에서 처리됩니다.

PHP 파일 업로드 프로세스는 무엇입니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 5.6, DELL G3 컴퓨터 이 방법은 모든 브랜드의 컴퓨터에 적합합니다.

php 파일 업로드 프로세스:

1. PHP 구성 파일의 파일 업로드 섹션

php.ini는 관련 파일 업로드 구성을 정의합니다.

  • file_uploads = 파일 업로드 열기

  • upload_tmp_dir = 임시 디렉터리

  • upload_max_filesize = 2M 최대 업로드 크기

  • max_file_uploads = 20 한 번에 업로드할 수 있는 최대 파일 수

2. 프런트 엔드 양식

<form action="test.php" method="post" enctype="multipart/form-data">
  <input type="file" name="myfile">
  <input type="submit" value="上传">
</form>

파일 업로드 제어가 있는 양식을 사용할 때, 양식은 enctype이 "multipart/form-data"로 설정되어야 합니다.

클라이언트 측에서 업로드되는 파일의 크기와 유형을 제한할 수 있습니다:

<input type="hidden" name="MAX_FILE_SIZE" value="8096">
<input type="file" name="myfile" accept="image/jpeg,image/png">

3. 백그라운드 처리

업로드 후에는 다음과 같이 서버 측에서 $_FILES 파일 배열을 받게 됩니다. : $_FILES文件数组如下:

PHP 파일 업로드 프로세스는 무엇입니까?

上传到服务器的临时文件默认保存在php.ini中upload_tmp_dir

PHP 파일 업로드 프로세스는 무엇입니까?

서버 임시 업로드 파일은 기본적으로 php.ini의 upload_tmp_dir에 설정된 디렉터리에 저장됩니다. 파일을 지정된 위치로 이동해야 합니다:

<?php
  header(&#39;Content-type:text/html;charset=utf-8&#39;);
  $myfile=$_FILES[&#39;myfile&#39;];
  //获取文件数组[&#39;myfile&#39;]的属性tmp_name与name
  $tmp=$myfile[&#39;tmp_name&#39;];
  $picname=$myfile[&#39;name&#39;];
  //windows采用GBK编码,php采用utf-8编码,需要改变文件名的编码格式
  $picname=iconv(&#39;utf-8&#39;,&#39;GBK&#39;,$picname);
  //将零时文件$tmp移动到指定目录userpic并命名为$picname
  copy($tmp,"userpic/".$picname);

4 오류 처리

. 파일 배열의 오류 속성을 처리합니다:

$error=$myfile[&#39;myfile&#39;][&#39;error&#39;];
  if ($error==0){//为0,代表上传成功
    if (move_uploaded_file($tmp,"userpic/".$picname)) {
      echo "移动文件成功";
    }else{
      echo "移动文件失败";
    }
  }else{//不为0,匹配错误信息
    switch ($error){
      case 1:
        echo "超过文件最大上传限制";//php.ini中upload_max_filesize
        break;
      case 2:
        echo "超过表单文件大小限制";//HTML表单中MAX_FILE_SIZE选项
        break;
      case 3:
        echo "文件部分被上传";
        break;
      case 4:
        echo "未选择上传文件";
        break;
      case 7://文件写入失败
      case 8:
        echo "系统错误";
        break;
    }
  }

5. 업로드 제한

프런트 엔드에서는 업로드된 파일의 유형과 크기를 제한할 수 있습니다:

<!--表单隐藏域对上传大小进行限制-->
<input type="hidden" name="MAX_FILE_SIZE" value="2097152">
<!--accept 对文件类型限制-->
<input type="file" name="myfile" accept="image/jpeg,image/png">

한도는 바이트 단위입니다

또한 서버측 응답 제한:

$size=$myfile[&#39;size&#39;];//获取文件大小
$MaxSize=2097152;//设置最大允许字节
$type=$myfile[&#39;type&#39;];//获取图片类型
$AllowTypr=array(&#39;image/jpeg&#39;,&#39;image/png&#39;,&#39;image/gif&#39;);//允许类型数组
if ($error==0){//为0,代表上传成功
  if ($size>$MaxSize){
    echo "<script>alert(&#39;文件大小超过限制&#39;);</script>";
    echo "<script>history.back(1);</script>";
    exit();
  }
  if (!in_array($type,$AllowTypr)){
    echo "<script>alert(&#39;请上传正确图片类型&#39;);</script>";
    echo "<script>history.back(1);</script>";
    exit();
  }

관련 동영상 추천:
초보부터 마스터까지 PHP 프로그래밍🎜🎜🎜

위 내용은 PHP 파일 업로드 프로세스는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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