この記事では、PHP でファイルや画像をアップロードする際に重要なグローバル変数である $_FILES のさまざまなパラメーターについて簡単に紹介します。詳しく知りたい人は参照してください。
ファイルアップロードフォームの処理
コードは次のとおりです | コードをコピー |
ファイル内での変数の使用法を見てみましょう
$_FILES スーパーグローバル変数は、事前定義されたスーパーグローバル配列の中で唯一の 2 次元配列です。その役割は、アップロードされたファイルに関連するさまざまな情報を保存することです。これは、PHP スクリプトを通じてサーバーにアップロードされるファイルにとって重要です。この関数には合計 5 つの項目があります:
1.$_FILES["ユーザーファイル"]["エラー"]
$_FILES["userfile"]["error"] 配列値は、アップロード試行の結果に関する重要な情報を提供します。合計 5 つの異なる戻り値があり、1 つは成功した結果を示し、4 つは試行中に発生した特定のエラーを示します。戻り値の名称や名称については後ほど紹介します。
2.$_FILES["ユーザーファイル"]["名前"]
$_FILES["userfile"]["name"] 変数は、クライアント マシンで宣言されたファイルの初期名 (拡張子を含む) を指定します。したがって、vacation.jpg というファイルをブラウザで閲覧し、フォーム経由でアップロードすると、この変数の値は vacation.png になります。
3.$_FILES["ユーザーファイル"]["サイズ"]
$_FILES["userfile"]["size"] 変数は、クライアントからアップロードされるファイルのサイズをバイト単位で指定します。したがって、vacation.jpg ファイルの例では、この関数には値 5253 (約 5kb) が割り当てられる可能性があります。
4. $_FILES["ユーザーファイル"]["tmp_name"]
$_FILES["userfile"]["tmp_name"] 変数は、サーバーへのアップロード後にファイルに与えられる一時的な名前を指定します。これは、一時ディレクトリ (PHP ディレクティブ Upload_tmp_dir で指定) に保存するときに指定されたファイル名です。
5. $_FILES["ユーザーファイル"]["タイプ"]
$_FILES["userfile"]["type"] 変数は、クライアントからアップロードされたファイルの MIME タイプを指定します。したがって、vacation.jpg ファイルの例では、この変数には値 image/jpeg が割り当てられます。アップロードが PDF の場合、値は application/pdf です。この変数は予期しない結果をもたらす場合があるため、スクリプト内で明示的に検証する必要があります。
$_FILES['myFile']['error'] ファイルのアップロードに関連するエラー コード。 ['error'] は PHP 4.2.0 で追加されました。その説明は次のとおりです: (PHP3.0 以降は定数になりました)
アップロード_エラー_OK
値: 0; エラーは発生せず、ファイルは正常にアップロードされました。
UPLOAD_ERR_INI_SIZE
値: 1; アップロードされたファイルは、php.ini の Upload_max_filesize オプションの制限を超えています。
UPLOAD_ERR_FORM_SIZE
値: 2; アップロードされたファイルのサイズが、HTML フォームの MAX_FILE_SIZE オプションで指定された値を超えています。
アップロード_エラー_部分
値: 3; ファイルの一部のみがアップロードされました。
UPLOAD_ERR_NO_FILE
値: 4; ファイルはアップロードされませんでした。
値: 5; アップロード ファイル サイズは 0.
それでは、完全な例を見てみましょう
コードは次のとおりです | コードをコピー |
|
PHPコード
if ((($_files["ファイル"]["タイプ"] == "画像/gif")
|| ($_files["ファイル"]["タイプ"] == "画像/jpeg")
|| ($_files["ファイル"]["タイプ"] == "画像/pjpeg"))
&& ($_files["ファイル"]["サイズ"]
{
if ($_files["ファイル"]["エラー"] > 0)
{
echo "エラー: " . $_files["ファイル"]["エラー"] "
";
}
それ以外
{
echo "アップロード: " . $_files["ファイル"]["名前"] "
";
echo "タイプ: " . $_files["ファイル"]["タイプ"] "
";
echo "サイズ: " . ($_files["ファイル"]["サイズ"] / 1024) .
";
echo "保存場所: " . $_files["file"]["tmp_name"];
}
}
それ以外
{
エコー「無効なファイル」;
}
IEの場合、認識されるjpgファイルの種類はpjpeg、FireFoxの場合はjpegである必要があります。