Maison  >  Article  >  développement back-end  >  Comment écrire le code de téléchargement d'un fichier php

Comment écrire le code de téléchargement d'un fichier php

angryTom
angryTomoriginal
2019-10-26 16:29:322969parcourir

Comment écrire le code de téléchargement d'un fichier php

Comment écrire le code de téléchargement de fichiers php

Quand nous avons appris le php pour la première fois, nous ne pouvions pas comprendre le php code de téléchargement de fichier, ainsi que la logique de téléchargement, le code suivant est écrit du point de vue d'un débutant, j'espère qu'il sera utile à tout le monde !

Connaissances requises :

Super tableau global : la valeur de $_FILES

$_FILES['myfile']['name'] est : le nom de fichier du système de fichiers du client

La valeur de $_FILES['myfile']['type'] est : le type de fichier transmis par le client

$_FILES['myfile' ] La valeur de ['size'] est : la taille en octets du fichier

La valeur de $_FILES['myflie']['tmp_name '] est : le chemin complet temporaire stocké sur le serveur après le le fichier est téléchargé

La valeur de $_FILES['myfile']['error'] est : le code d'erreur du téléchargement du fichier

La valeur stockée dans $_FILES[' myfile']['error']

La valeur est 0 : cela signifie qu'aucune erreur ne s'est produite.

La valeur est 1 : cela signifie que la taille du fichier téléchargé dépasse la valeur convenue. La taille maximale du fichier est spécifiée dans le fichier de configuration PHP. L'instruction est : upload_max_filesize

La valeur est 2 : Indique que la taille du fichier téléchargé dépasse la valeur maximale spécifiée par l'élément MAX_FILE_SIZE de l'attribut de champ caché du formulaire HTML.

Valeur de 3 : indique que le fichier n'a été que partiellement téléchargé

Valeur de 4 : indique qu'aucun fichier n'a été téléchargé

Valeur de 6 : indique que le dossier temporaire ne peut pas être trouvé

La valeur est 7 : indique un échec d'écriture du fichier

La valeur d'erreur correspond à la constante

UPLOAD_ERR_OK : valeur correspondante 0

UPLOAD_ERR_INI_SIZE : Valeur correspondante 1

UPLOAD_ERR_FORM_SIZE : Valeur correspondante 2

UPLOAD_ERR_PARTIAL : Valeur correspondante 3

UPLOAD_ERR_NO_FILE : Valeur correspondante 4

UPLOAD_ER R_NO_TMP_DIR : valeur correspondante 6

UPLOAD_ERR_CANT_WRITE : Valeur correspondante 7

upload.html Le code est le suivant

<!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 Le code est le suivant

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

Pour plus de connaissances sur PHP, veuillez visiterSite Web PHP chinois  !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn