PHP 파일을 업로드하는 단...LOGIN

PHP 파일을 업로드하는 단계

파일 업로드 단계

PHP를 더 잘 배우기 위해 매우 복잡한 PHP 파일 업로드 단계를 6단계로 요약했습니다.

실제 사용 시 다음 6단계를 따르면 PHP 파일 업로드를 성공적으로 완료할 수 있습니다.

1. 오류 코드가 있는지 확인


시스템에서 반환된 오류 코드에 대한 자세한 설명:

错误码说明
0无误,可以继续进行文件上传的后续操作。
1超出上传文件的最大限制,upload_max_filesize = 2M php.ini中设置,一般默认为2M。可根据项目中的实际需要来修改
2超出了指定的文件大小,根据项目的业务需求指定上传文件的大小限制
3只有部分文件被上传
4文件没有被上传
6找不到临时文件夹,可能目录不存在或没权限
7文件写入失败,可能磁盘满了或没有权限


참고: 오류 코드에는 5가 없습니다.

2. 파일 크기가 범위를 초과하는지 여부를 맞춤 판단합니다

업로드 기능 개발 시. 개발자로서 우리는 php.ini에 지정된 최대 업로드 값 외에도

우리는 일반적으로 기업에서 지정한 업로드 크기 제한인 값도 설정합니다.

예:
시나 웨이보나 QQ Zone에서는 2M의 아바타 사진 한 장만 허용됩니다. 앨범 업로드 시 2M 이상 업로드 가능합니다.

따라서 해당 시스템은 더 큰 파일 업로드를 지원합니다.

여기서 판단된 파일 크기는 실제 비즈니스에서 지정하려는 업로드 파일 크기를 제한하는 데 사용됩니다.

3. 접미사 이름과 MIME 유형이 일치하는지 확인

온라인 세상에도 나쁜 사람이 있습니다. 그들은 사진에 바이러스를 삽입하고, 첨부 파일에 바이러스를 업로드하며, 웹 페이지에 바이러스나 포르노 사진을 삽입합니다.

업로드된 파일의 접미사 및 MIME 유형을 판단해야 합니다.

MIME(Multi Purpose Internet Mail Extensions)은 다목적 인터넷 메일 확장자 유형입니다. 특정 확장자를 가진 파일을 애플리케이션에서 열도록 설정하는 방식입니다. 확장자를 가진 파일에 접근하면 브라우저가 자동으로 지정된 애플리케이션을 사용하여 해당 파일을 엽니다. 주로 일부 클라이언트 정의 파일 이름과 일부 미디어 파일 열기 방법을 지정하는 데 사용됩니다.

접미사와 MIME 유형을 결정할 때 두 개의 매개변수를 전달하는 PHP 함수 in_array()를 사용합니다.
첫 번째 매개변수는 판단할 값이고,
두 번째 매개변수는 범위 배열입니다.

이 기능을 사용하여 파일 확장자와 MIME 유형이 허용 범위 내에 있는지 확인합니다.

4. 파일 이름 생성

파일이 성공적으로 업로드되었지만 원본 이름은 저장되지 않습니다.
원래 이름에 민감한 키워드를 포함하는 일부 사람들은 우리나라 관련 법규를 위반하게 되기 때문입니다.

date(), mt_rand() 또는 Unique()를 사용하여 임의의 파일 이름을 생성할 수 있습니다.

5. 파일 업로드 여부 확인

파일이 성공적으로 업로드되면 시스템은 업로드된 임시 파일을 시스템의 임시 디렉터리에 업로드합니다. 임시 파일을 만듭니다.

임시 파일명도 생성됩니다. 우리가 해야 할 일은 임시 파일을 시스템의 지정된 디렉터리로 이동하는 것입니다.

움직이기 전에 무작정 움직이지 않거나, 잘못 움직이는 것은 비과학적입니다. 이동하기 전에 업로드된 파일이 임시 파일인지 확인하기 위해 관련 기능을 사용해야 합니다.

is_uploaded_file()은 전달된 이름이 업로드된 파일인지 확인하기 위해 매개변수($_FILES에 캐시된 파일 이름)를 전달합니다.

6. 임시 파일을 지정된 위치로 이동

임시 파일은 실제 임시 파일이므로 웹사이트 디렉터리로 이동해야 합니다.

우리 웹사이트 디렉토리의 데이터를 다른 사람들이 접근할 수 있도록 하십시오.

우리는 move_uploaded_file()을 사용합니다.
업로드된 파일을 지정된 위치로 이동하고 이름을 지정하는 기능입니다.
두 개의 매개변수를 전달합니다.
첫 번째 매개변수는 이동할 업로드된 파일입니다.
두 번째 매개변수는 지정된 폴더와 이름을 연결하는 문자열입니다.


다음 섹션
<form action="" enctype="multipart/form-data" method="post" name="uploadfile">上传文件:<input type="file" name="upfile" /><br> <input type="submit" value="上传" /></form> <?php //print_r($_FILES["upfile"]); if(is_uploaded_file($_FILES['upfile']['tmp_name'])){ $upfile=$_FILES["upfile"]; //获取数组里面的值 $name=$upfile["name"];//上传文件的文件名 $type=$upfile["type"];//上传文件的类型 $size=$upfile["size"];//上传文件的大小 $tmp_name=$upfile["tmp_name"];//上传文件的临时存放路径 //判断是否为图片 switch ($type){ case 'image/pjpeg':$okType=true; break; case 'image/jpeg':$okType=true; break; case 'image/gif':$okType=true; break; case 'image/png':$okType=true; break; } if($okType){ /** * 0:文件上传成功<br/> * 1:超过了文件大小,在php.ini文件中设置<br/> * 2:超过了文件的大小MAX_FILE_SIZE选项指定的值<br/> * 3:文件只有部分被上传<br/> * 4:没有文件被上传<br/> * 5:上传文件大小为0 */ $error=$upfile["error"];//上传后系统返回的值 echo "================<br/>"; echo "上传文件名称是:".$name."<br/>"; echo "上传文件类型是:".$type."<br/>"; echo "上传文件大小是:".$size."<br/>"; echo "上传后系统返回的值是:".$error."<br/>"; echo "上传文件的临时存放路径是:".$tmp_name."<br/>"; echo "开始移动上传文件<br/>"; //把上传的临时文件移动到up目录下面 move_uploaded_file($tmp_name,'up/'.$name); $destination="up/".$name; echo "================<br/>"; echo "上传信息:<br/>"; if($error==0){ echo "文件上传成功啦!"; echo "<br>图片预览:<br>"; echo "<img src=".$destination.">"; //echo " alt=\"图片预览:\r文件名:".$destination."\r上传时间:\">"; }elseif ($error==1){ echo "超过了文件大小,在php.ini文件中设置"; }elseif ($error==2){ echo "超过了文件的大小MAX_FILE_SIZE选项指定的值"; }elseif ($error==3){ echo "文件只有部分被上传"; }elseif ($error==4){ echo "没有文件被上传"; }else{ echo "上传文件大小为0"; } }else{ echo "请上传jpg,gif,png等格式的图片!"; } } ?>
코스웨어