ホームページ  >  記事  >  毎日のプログラミング  >  PHPファイルのアップロード方法と情報解析を詳しく解説【動画付き】

PHPファイルのアップロード方法と情報解析を詳しく解説【動画付き】

藏色散人
藏色散人オリジナル
2018-09-08 17:46:295379ブラウズ

この記事では主にPHPファイルのアップロード方法とその情報分析について詳しく紹介します。

PHP を使用してファイルアップロード機能を実装することは、PHP プロジェクト開発では比較的一般的ですが、一部の初心者にとっては難しいかもしれません。以下では、具体的なコード例を通して詳しく説明します。

最初にファイルアップロード用のHTMLフォームを作成します

コード例は次のとおりです:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
 选择文件进行上传: <input type="file" name="file">
    <input type="submit" value="上传">
</form>
</body>
</html>

効果は次のようになります:

PHPファイルのアップロード方法と情報解析を詳しく解説【動画付き】

上記のコードでは、ファイルタイプを設定します。入力ボタンには、アップロードしたファイルの名前も file に設定されます。ファイルまたは画像をクリックして選択すると、フォーム データが Upload.php に送信され、アップロードされたファイルに対して関連する操作が実行されます。

次に、upload.phpファイルで、アップロードされたファイルの関連情報を解析するメソッドを定義します

具体的なコード例は次のとおりです:

<?php
$fileInfo = $_FILES[&#39;file&#39;];
var_dump($_FILES[&#39;file&#39;]);

function upload_file($fileInfo, $upload = "./upload", $imagesExt = [&#39;gif&#39;, &#39;png&#39;, &#39;jpg&#39;])
{
    if ($fileInfo[&#39;error&#39;] === 0) {
        $ext = strtolower(pathinfo($fileInfo[&#39;name&#39;], PATHINFO_EXTENSION));
        if (!in_array($ext, $imagesExt)) {
            return "文件非法类型";
        }
        if (!is_dir($upload)) {
            mkdir($upload, 0777, true);
        }
        $fileName = md5(uniqid(microtime(true), true)) . "." . $ext;
        $destName = $upload . "/" . $fileName;
        if (!move_uploaded_file($fileInfo[&#39;tmp_name&#39;], $destName)) {
            return "文件上传失败!";
        }
        return "文件上传成功!";
    } else {
        switch ($fileInfo[&#39;error&#39;]) {
            case 1:
                echo &#39;上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值&#39;;
                break;
            case 2:
                echo &#39;上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值&#39;;
                break;
            case 3:
                echo &#39;文件只有部分被上传&#39;;
                break;
            case 4:
                echo &#39;没有文件被上传&#39;;
                break;
            case 6:
                echo &#39;找不到临时文件夹&#39;;
                break;
            case 7:
                echo &#39;文件写入失败&#39;;
                break;
        }
    }
}
var_dump(upload_file($fileInfo));

上記のPHPコードでは、変数$fileInfoが使用されます。フォームフォームからアップロードされたデータは、var_dump 関数を使用してアップロードされたファイル file の情報を出力し、配列で表示するために使用されるように定義されています。

ファイルを判断する方法がない場合、ブラウザ経由で直接アクセスした場合の影響は次のとおりです:

PHPファイルのアップロード方法と情報解析を詳しく解説【動画付き】

ヒント: error はエラー メッセージの説明を表し、ここでのエラー番号は 0 です。アップロードされたファイルにエラーがないことを意味します。ただし、PHP マニュアルでは、エラー番号は 0 より大きくなっています。

以下は、エラーエラー番号を表形式で簡単にまとめたものです

値は0です
値は1です 値は2です 値は3です 値は4 値は 6 です 値は 7 です
エラーは発生せず、ファイルは正常にアップロードされました。 アップロードされたファイルがphp.iniのupload_max_filesizeオプションの値を超えています。 アップロードされたファイルのサイズが、HTML フォームの MAX_FILE_SIZE オプションで指定された値を超えています。 ファイルの一部のみがアップロードされています。 ファイルはアップロードされていません 一時フォルダーが見つかりません。 PHP 4.3.10 および PHP 5.0.3 で導入されました。 ファイルの書き込みに失敗しました。 PHP 5.1.0で導入されました。

したがって、エラーエラー番号に関する関連知識を理解した後、アップロードされたファイルに対して複数の判断を行うための PHP アップロードメソッドを設計できます。上記のコードでは、メソッドを判断するための具体的なコードが詳細に記述されています。まず、upload_file() メソッドを定義しました。このメソッドには、それぞれファイルのアップロード情報、ディレクトリ、ファイルの種類を決定するための配列を表す 3 つのパラメータが与えられています。 。

その後、if elseとswitchの判定文を使用して、アップロードされたファイルを1つずつ判定します。

ここでの方法は、ファイルの種類、アップロードフォルダーの有無、エラーメッセージに基づいています。

最後に、画像をアップロードした後、表示される最終効果は次のとおりです:

PHPファイルのアップロード方法と情報解析を詳しく解説【動画付き】

注: 上記のコードの md5() 関数は暗号化ではなく、エンコードに使用されます。

上記の記事は、PHP ファイルをアップロードする具体的な方法について説明したもので、困っている友人に役立つことを願っています。対応するビデオチュートリアルは、参考と勉強のために[PHPファイルアップロード情報の分析とカプセル化アップロード方法]です!

以上がPHPファイルのアップロード方法と情報解析を詳しく解説【動画付き】の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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