ホームページ >バックエンド開発 >PHPの問題 >PHPで画像をアップロードする方法

PHPで画像をアップロードする方法

PHPz
PHPzオリジナル
2023-04-10 09:36:043430ブラウズ

PHP は、Web 開発で広く使用されているサーバー側スクリプト言語であり、多くの Web 機能を実装できます。その中でも画像のアップロードはWeb開発ではよくある作業ですが、この記事ではPHPで画像をアップロードする方法を紹介します。

1. 基本概念

写真をアップロードする方法を紹介する前に、いくつかの基本概念を理解する必要があります:

  1. $_FILES

$_FILES は、アップロードされたすべてのファイルに関する情報を含むスーパーグローバル配列であり、これを使用してアップロードされたファイルを操作できます。

  1. フォーム内の

は、HTMLでファイルをアップロードするために使用されるフォームです。コントロールは写真をアップロードするための入り口でもあります。

  1. MIME タイプ

MIME タイプは、アップロードされたファイルの種類を識別する方法であり、アップロードされたファイルが画像であるかどうかを判断する方法の 1 つでもあります。 。

2. 画像をアップロードする方法

PHP の move_uploaded_file() 関数を使用してファイルをアップロードできます。構文は次のとおりです:

bool move_uploaded_file ( string $filename , string $destination )

このうち、$filenameはアップロードされたファイル名を表し、$destinationは保存されたターゲットファイル名を表します。この関数の戻り値はブール値で、操作が成功したかどうかを示します。

次は、画像をアップロードするための簡単なコード例です:

<?php
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);     // 获取文件后缀名
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 204800)   // 小于 200 kb
&& in_array($extension, $allowedExts))
{
    if ($_FILES["file"]["error"] > 0)
    {
        echo "错误: " . $_FILES["file"]["error"] . "<br>";
    }
    else
    {
        echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";
        echo "文件类型: " . $_FILES["file"]["type"] . "<br>";
        echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
        echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"] . "<br>";

        // 判断存储文件夹是否存在,不存在则创建文件夹
        if (!file_exists("upload"))
        {
            mkdir("upload");
        }
        // move_uploaded_file() 函数将上传的文件移动到指定目录
        move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
        echo "文件存储在: " . "upload/" . $_FILES["file"]["name"];
    }
}
else
{
    echo "非法的文件格式或者文件大小超过限制,请检查后重试。";
}
?>

このコードでは、アップロードできるファイルの種類とサイズが最初に定義され、アップロードされたファイルのサフィックスが取得されます。 explore() 関数を使用して名前を取得し、end() 関数を使用して配列の最後の要素 (つまり、ファイル接尾辞名) を取得します。 MIME タイプが信頼できないため、この方法で判断する必要があります。

次に、$_FILES"file" の値が 0 かどうかを確認して、アップロードが成功したかどうかを判断します。成功すると、アップロードした画像が指定したフォルダーに移動され、ファイル情報とパスが表示されます。

3. 概要

この記事では、PHP で画像をアップロードする方法を、関連する基本概念と画像をアップロードするためのコード実装を含めて紹介します。 move_uploaded_file() 関数と関連する条件文を使用することで、画像をアップロードする機能を実現できます。同時に、セキュリティを確保するために、開発者は事故を避けるためにアップロードされるファイルの種類とサイズの制限に注意を払う必要があります。

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

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