>  기사  >  백엔드 개발  >  PHP에서 파일 접미사 업로드를 제한하는 방법

PHP에서 파일 접미사 업로드를 제한하는 방법

(*-*)浩
(*-*)浩원래의
2019-09-04 15:33:142432검색

PHP에서 파일 접미사 업로드를 제한하는 방법

PHP 이미지 파일 업로드 유형 제한, 확장자 제한, 크기 제한 및 디렉토리 생성 자동 감지.

코드는 두 부분으로 나뉩니다:

한 부분 형식: (권장 학습: PHP 비디오 튜토리얼)

<!doctype html><br/><html><br/><head><br/><title>文件上传案例-file upload example</title><br/><meta http-equiv="content-type" contnet="text/html" charset="utf-8"/><br/></head><br/><body><br/><h1>文件上传支持图片.gif.png.jpg.jpeg限制200kb大小的文件</h1><br/><form method="POST" action="upload_file.php" enctype="multipart/form-data"><br/><lable for="file">File:</lable><br/><input name="file" type="file" id="file"/><br/><br/><input type="submit" value="上传文件"/><br/></form><br/></body><br/></html><br/>

두 번째 부분 PHP 백그라운드 업로드 확인 프로그램:

<meta charset="utf-8"/><br/><?php<br/>$array=array("gif","png","jpg","jpeg");//赋值一个数组<br/>$tmp=explode(".",$_FILES[&#39;file&#39;][&#39;name&#39;]);//用explode()函数把字符串打散成为数组。<br/>$extension=end($tmp);//用end获取数组最后一个元素<br/>if($_FILES[&#39;file&#39;][&#39;error&#39;]>0){//判断提交上的文件是否为空或错误<br/>    echo "文件未选择,或非法文件!错误:".$_FILES[&#39;file&#39;][&#39;error&#39;];<br/>}else{<br/>    if((($_FILES[&#39;file&#39;][&#39;type&#39;]=="image/gif")//判断提交上的文件的文件类型是否正确和文件扩展名是否正确,文件大小是否超2048kb。<br/>    ||($_FILES[&#39;file&#39;][&#39;type&#39;]=="image/png")<br/>    ||($_FILES[&#39;file&#39;][&#39;type&#39;]=="image/jpeg")<br/>    ||($_FILES[&#39;file&#39;][&#39;type&#39;]=="image/jpg")<br/>    ||($_FILES[&#39;file&#39;][&#39;type&#39;]=="image/pjpeg")<br/>    ||($_FILES[&#39;file&#39;][&#39;type&#39;]=="image/x-png"))<br/>    &&($_FILES[&#39;file&#39;][&#39;size&#39;]<204800)<br/>    &&in_array($extension,$array)){<br/>        echo "文件大小和文件扩展名验成功!<br/>";<br/>        if(file_exists("upload/")){//用file_exists函数检测是否有upload目录,用if判断。<br/>            if(file_exists("upload/".$_FILES[&#39;file&#39;][&#39;name&#39;])){//用file_exists函数检测是否在upload目录下有[&#39;name&#39;]文件。用if判断。<br/>            echo "已存在该文件名!位置:upload/".$_FILES[&#39;file&#39;][&#39;name&#39;];<br/>        }else{//显示各个信息,然后用move_upload_file函数把临时目录文件移动到upload目录。<br/>            echo "上传完成,下面是信息:<br/>";<br/>            echo "上传文件名:".$_FILES[&#39;file&#39;][&#39;name&#39;]."<br/>";<br/>            echo "上传类型:".$_FILES[&#39;file&#39;][&#39;type&#39;]."<br/>";<br/>            echo "上传文件大小:".$_FILES[&#39;file&#39;][&#39;size&#39;]."<br/>";<br/>            echo "上传文件临时缓存位置:".$_FILES[&#39;file&#39;][&#39;tmp_name&#39;]."<br/>";<br/>            move_uploaded_file($_FILES[&#39;file&#39;][&#39;tmp_name&#39;],"upload/".$_FILES[&#39;file&#39;][&#39;name&#39;]);//这里我们用到两个参数,一是被移到的文件,二是移动到的目标位置。<br/>            echo "储存服务器相对的位置为:/upload/".$_FILES[&#39;file&#39;][&#39;name&#39;];<br/>        }<br/>        }else{//没有目录的情况下,使用mkdir函数创建upload目录。<br/>            echo "不存在upload目录,已自动创建upload/目录";<br/>            mkdir("upload");<br/>        }<br/>    }else{<br/>        echo "扩展名和文件大小不正确,扩展名支持gif,jpg,png,jpeg,文件大小支持200kb";<br/>    }<br/>    //echo "文件临时储存的位置:".$_FILES[&#39;file&#39;][&#39;tmp_name&#39;];//把文件获取到临时储存的位置里面,并打印出来;<br/>    //move_uploaded_file($_FILES[&#39;file&#39;][&#39;tmp_name&#39;],"upload/".$_FILES[&#39;file&#39;][&#39;name&#39;]);//把临时储存的文件移到upload目录下。<br/>}<br/>?><br/>

백그라운드 PHP 프로그램이 탑재됩니다. 4번 후 if 판단 업로드된 파일을 4번 판단:

첫 번째 if는 업로드된 파일이 비어 있거나 오류가 있는지 여부를 판단하는 것입니다.

두 번째 if는 업로드한 파일 형식이 올바른지, 확장자가 일치하는지, 크기가 적당한지 여부를 확인합니다.

세 번째 if는 업로드된 파일이 속한 디렉터리가 존재하는지 확인합니다. 존재하지 않는 경우 시스템은 mkdir 함수를 사용하여 자동으로 업로드 디렉터리를 생성합니다.

네 번째 if는 업로드된 파일이 이미 존재하는지 확인합니다. 그렇다면 메시지가 표시되고 업로드가 중지됩니다. 반대로 존재하지 않으면 업로드 작업이 수행됩니다.

위 내용은 PHP에서 파일 접미사 업로드를 제한하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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