PHP開発ファイルアップロード...LOGIN

PHP開発ファイルアップロードチュートリアルのカプセル化機能

まず、処理ファイルのエラー情報を全て1つのファイルにまとめる必要があります

今度は関数ファイルfunction.phpを定義します

この中でfile.html doaction.php関数という3つのファイルを使用します.php

最初のページについては詳しく説明しません。コードは次のとおりです:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>文件上传</title>
</head>
<body>
    <form method="post" action="doaction1.php" enctype="multipart/form-data">
        上传文件:<input type="file" name="myfile"><br>
                  <input type="submit" value="上传文件">
    </form>
</body>
</html>

doaction.php

header("Content-type: text/html; charset=utf-8" を見てみましょう) );
$fileinfo = $_FILES['myfile'];
$allowEXT = array('jpg','png','jpeg','gif');//ファイル形式
$maxfile = //2M; //ファイルの大きさ
$ ext = pathinfo($fileinfo['name'],PATHINFO_EXTENSION);//ファイルの種類を取得します
$file = $fileinfo['error'] //ストレージエラーメッセージ

;このファイルの書き込みはまだ終わっていません。完了するまで待ちます。関数はカプセル化されています。カプセル化されたファイルをこのファイルに導入して、関数を呼び出す必要があります

function.php ファイルを見てみましょう。コードは次のとおりです。

<?php
    function files($file,$ext,$allowEXT,$maxfile,$size){
            //判断错误号
            if($file > 0){
                switch ($file){
                    case 1: $msg=  "上传文件超过了php 配置文件中 upload_max_filesize 的值";break;
                    case 2: $msg=  "上传文件超过max_file_size 大小";break;
                    case 3: $msg=  "文件部分被上传";break;
                    case 4: $msg=  "没有选择上传文件";break;
                    case 6: $msg=  "没有找到临时目录";break;
                    case 7: 
                    case 8: $msg=  "系统错误";break;
                }
                exit($msg);
            }
            //检测文件上传的类型
            if(!in_array($ext, $allowEXT)){
                exit('非法文件类型');
            }

            //检测上传文件的大小
            if($fileinfo['size']>$maxfile){
                exit('文件过大');
            }

            //检测是否是http post方式提交的
            if(!is_uploaded_file($fileinfo['$tmp_name'])){
                exit("文件不是以POST方式提交");
            }
            
    }
?>

上記のコードで、関数には 4 つのパラメータがあります

doction.php は function.php をインポートし、関数を呼び出す必要があると前述しました

ドキュメントの完全なコード.php ファイルは次のとおりです:

<?php
    header("Content-type: text/html; charset=utf-8");
    require_once("function.php"); 
    $fileinfo = $_FILES['myfile'];
    $allowEXT = array('jpg','png','jpeg','gif');//文件格式
    $maxfile = 2097152; //2M   //文件多大
    $ext = pathinfo($fileinfo['name'],PATHINFO_EXTENSION);//获取文件类型
    $file = $fileinfo['error']; //存放错误信息
    $size = $fileinfo['size'];
    files($file,$ext,$allowEXT,$maxfile,$size);
?>


<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>文件上传</title> </head> <body> <form method="post" action="doaction1.php" enctype="multipart/form-data"> 上传文件:<input type="file" name="myfile"><br> <input type="submit" value="上传文件"> </form> </body> </html>
コースウェア