Heim  >  Artikel  >  Backend-Entwicklung  >  So schreiben Sie einen PHP-Datei-Upload-Code

So schreiben Sie einen PHP-Datei-Upload-Code

angryTom
angryTomOriginal
2019-10-26 16:29:323101Durchsuche

So schreiben Sie einen PHP-Datei-Upload-Code

Wie schreibe ich PHP-Datei-Upload-Code?

Als wir PHP zum ersten Mal lernten, konnten wir PHP nicht verstehen Datei-Upload-Code, sowie die Upload-Logik, der folgende Code ist aus der Perspektive eines Anfängers geschrieben, ich hoffe, er wird für alle hilfreich sein!

Erforderliche Kenntnisse:

Super globales Array: Der Wert von $_FILES

$_FILES['myfile']['name'] ist: der Dateiname des Client-Dateisystems

Der Wert von $_FILES['myfile']['type'] ist: der vom Client übergebene Dateityp

$_FILES['myfile' ] Der Wert von ['size'] ist: die Bytegröße der Datei

Der Wert von $_FILES['myflie']['tmp_name '] ist: der temporäre vollständige Pfad, der nach dem auf dem Server gespeichert ist Datei wird hochgeladen

Der Wert von $_FILES['myfile']['error'] ist: der Fehlercode des Datei-Uploads

Der in $_FILES[' gespeicherte Wert myfile']['error']

Der Wert ist 0: Dies bedeutet, dass kein Fehler aufgetreten ist.

Der Wert ist 1: Dies bedeutet, dass die hochgeladene Dateigröße den vereinbarten Wert überschreitet. Die maximale Dateigröße ist in der PHP-Konfigurationsdatei angegeben. Die Anweisung lautet: upload_max_filesize

Der Wert ist 2: Zeigt an, dass die hochgeladene Dateigröße den durch das Element MAX_FILE_SIZE des HTML-Formularfeldattributs angegebenen Maximalwert überschreitet

Wert 3: Zeigt an, dass die Datei nur teilweise hochgeladen wurde

Wert 4: Zeigt an, dass keine Dateien hochgeladen wurden

Wert 6: Zeigt an, dass der temporäre Ordner dies nicht kann gefunden werden

Wert ist 7: Zeigt einen Dateischreibfehler an

Der Fehlerwert entspricht der Konstante

UPLOAD_ERR_OK: Entsprechender Wert 0

UPLOAD_ERR_INI_SIZE: Entsprechender Wert 1

UPLOAD_ERR_FORM_SIZE: Entsprechender Wert 2

UPLOAD_ERR_PARTIAL: Entsprechender Wert 3

UPLOAD_ERR_NO_FILE: Entsprechender Wert 4

UP LOAD_ERR_NO_TMP_DIR: Entsprechender Wert 6

UPLOAD_ERR_CANT_WRITE: entsprechender Wert 7

upload.html Der Code lautet wie folgt

<!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 Der Code lautet wie folgt

<?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;;
    }
}

Weitere PHP-bezogene Kenntnisse finden Sie auf derPHP-Chinese-Website!

Das obige ist der detaillierte Inhalt vonSo schreiben Sie einen PHP-Datei-Upload-Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn