>  기사  >  백엔드 개발  >  PHP 파일 업로드 코드 작성 방법

PHP 파일 업로드 코드 작성 방법

angryTom
angryTom원래의
2019-10-26 16:29:322969검색

PHP 파일 업로드 코드 작성 방법

PHP 파일 업로드 코드 작성 방법

나는 new to php 때로는 PHP 파일 업로드 코드와 업로드 로직을 이해하지 못하는 경우가 있습니다. 다음 코드는 초보자의 관점에서 작성되었습니다. 모두에게 도움이 되기를 바랍니다.

필수 지식:

슈퍼 전역 배열: $_FILES

$_FILES['myfile' 값 ]['name'] is: 클라이언트 파일 시스템의 파일 이름

$_FILES['myfile'] ['type'] 값: 클라이언트가 전달한 파일 형식 #🎜 🎜 #

$_FILES['myfile']['size'] 값: 파일의 바이트 크기

$_FILES['myflie']['tmp_name 값 '] is: 파일 업로드 후 서버에 저장된 임시 전체 경로

$_FILES['myfile']['error'] 값: 파일 업로드의 오류 코드# 🎜🎜#

#🎜 🎜#$_FILES['myfile']['error']에 저장된 값

값이 0이면 오류가 발생하지 않았음을 나타냅니다. # 🎜🎜#값이 1: 업로드된 파일의 크기가 합의된 값을 초과했음을 나타냅니다. 최대 파일 크기는 PHP 구성 파일에 지정되어 있습니다. 명령은 다음과 같습니다: upload_max_filesize

값은 2: 업로드된 파일 크기가 숨겨진 HTML 양식의 MAX_FILE_SIZE 요소에 지정된 최대값을 초과함을 나타냅니다. field attribute#🎜 🎜#

값이 3: 파일이 부분적으로만 업로드됨

값이 4: 파일이 업로드되지 않음

값이 6 : 임시 폴더를 찾을 수 없습니다.

값이 7: 파일 쓰기 실패를 나타냅니다.

오류 값은 상수

#🎜🎜에 해당합니다. #

UPLOAD_ERR_OK: 값 0에 해당

UPLOAD_ERR_INI_SIZE: 값 1에 해당UPLOAD_ERR_FORM_SIZE: 값 2에 해당

UPLOAD_ERR_PARTIAL : 해당 값 3#🎜 🎜#

UPLOAD_ERR_NO_FILE : 해당 값 4

UPLOAD_ERR_NO_TMP_DIR : 해당 값 6

UPLOAD_ERR_CANT_WRITE : 해당 값 7

# 🎜🎜#upload.html 코드는 다음과 같습니다#🎜 🎜 #

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>图片上传</title>
</head>
<body>
    <form action="upload.php" method="post" enctype="multipart/form-data">
        <input type="file"  name="pic"/>
        <!--通过表单限制上传文件的大小 一定要在上传按钮前 大小以字节为主-->
        <input type="hidden" name="MAX_FILE_SIZE"  value="8388608"/>
        <input type="submit" name="sub" value="上传" />
    </form>
</body>
</html>

upload.php 코드는 다음과 같습니다

<?php
//var_dump($_FILES);
//exit;
//判断是否是文件上传
$file = $_FILES;
//第一个pic 是input 中的name值
if(is_uploaded_file($file[&#39;pic&#39;][&#39;tmp_name&#39;]))
{
    //声明允许上传的文件类型
    $allowType = [&#39;image/png&#39;,&#39;image/jpeg&#39;,&#39;image/gif&#39;,&#39;image/jpg&#39;];
    //正在上传的文件的类型
    $type = $file[&#39;pic&#39;][&#39;type&#39;];
//    echo $type;
    //判断类型是否是允许的类型
    if(!in_array($type,$allowType))//检查数组中是否存在某个值,返回布尔型
    {
       exit(&#39;上传类型有误&#39;);
    }
    //判断文件上传的大小
    if($file[&#39;pic&#39;][&#39;size&#39;] > 1024 * 1024 * 8) //以字节为主 1024*1024是1M
    {
        exit(&#39;上传的文件太大&#39;);
    }
    //设置新文件名
    $filename = date(&#39;YmdHis&#39;,strtotime(&#39;now&#39;)).rand(1000,9999);
    //获取上传文件的后缀名
    $name = $file[&#39;pic&#39;][&#39;name&#39;];
    //得到文件名字符串
    $filestr      = explode(&#39;.&#39;,$name);
    $ext = array_pop($filestr);
    //拼接新文件名
    $newfilename = $filename.&#39;.&#39;.$ext;
    //拼接上传文件的路径
    $path = &#39;./uploads/&#39;;
    //绝对路径
    $abspath = $path.$newfilename;
    if(move_uploaded_file($file[&#39;pic&#39;][&#39;tmp_name&#39;],$abspath))
    {
        echo &#39;上传成功&#39;;
    }else{
        echo &#39;上传失败&#39;;
    }
}

더 많은 PHP 관련 지식을 보시려면 # 🎜🎜#PHP中文网

!

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

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