ホームページ  >  記事  >  バックエンド開発  >  PHPファイルアップロードコードの書き方

PHPファイルアップロードコードの書き方

angryTom
angryTomオリジナル
2019-10-26 16:29:322969ブラウズ

PHPファイルアップロードコードの書き方

#php ファイルアップロードコードの書き方

私たちが初めて php を学んだとき、理解できませんでした。 php ファイルのアップロード コードとアップロード ロジックについて、次のコードは初心者の観点から書かれています。皆さんのお役に立てれば幸いです。

必要な知識:

スーパー グローバル配列: $_FILES

$_FILES['myfile']['name'] の値は次のとおりです。クライアント ファイル システムのファイル名

$_FILES['myfile']['type'] 値は次のとおりです: クライアントによって渡されたファイル タイプ

$_FILES['myfile'] ['size'] の値は次のとおりです: ファイルのバイト サイズ

$_FILES['myflie']['tmp_name '] の値は次のとおりです: ファイルの後にサーバーに保存される一時的なフル パスアップロードされています

$_FILES['myfile']['error'] の値は次のとおりです: ファイル アップロードのエラー コード

$_FILES['myfile'] に格納されている値]['error']

値 0: エラーが発生しなかったことを示します。

値 1: アップロードされたファイルのサイズが合意された値を超えていることを示します。最大ファイル サイズは、PHP 構成ファイルで指定されます。指示は次のとおりです。upload_max_filesize

値は 2: アップロードされたファイル サイズが、HTML フォームの隠しフィールド属性の MAX_FILE_SIZE 要素で指定された最大値を超えていることを示します

値 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 中国語 Web サイト をご覧ください。

以上がPHPファイルアップロードコードの書き方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。