PHPを使用してアップロードエラーメッセージを印刷する方法

PHPz
リリース: 2023-03-27 17:30:37
オリジナル
552 人が閲覧しました

PHP は、Web 開発やサーバーサイド アプリケーション開発で広く使用されている人気のあるプログラミング言語です。 Web開発ではファイルのアップロードが頻繁に行われますが、さまざまな理由によりファイルのアップロード時にさまざまなエラーが発生し、開発が困難になることがあります。

この記事では、開発者が問題をより迅速に特定し、アップロード ファイルの問題を解決できるように、PHP を使用してアップロード エラー メッセージを出力する方法を紹介します。

1. ファイルのアップロード時の一般的なエラー

ファイルをアップロードするときに、次のエラーがよく発生します:

  1. ファイル サイズの制限を超えています
#PHP には、upload_max_filesize という名前の設定項目があり、アップロードされるファイルの最大サイズを指定します。アップロードしたファイルサイズがこの制限を超えると、ファイルサイズ超過エラーが発生します。

    拡張子のアップロードは許可されていません
ファイルをアップロードする場合、通常はホワイトリストがあり、許可されたファイル拡張子のみをアップロードできます。アップロードされたファイル拡張子がホワイトリストにない場合は、アップロードが許可されていないというエラーが表示されます。

    アップロード ディレクトリに権限がありません
ファイルをアップロードするときは、ファイルをサーバー上のディレクトリに保存する必要があります。ただし、場合によっては、アップロード ディレクトリに書き込み権限がないため、アップロード ディレクトリに権限がないというエラーが表示されます。

    アップロードしたファイルが失われる
ファイルをアップロードすると、アップロードしたファイルが失われることがあります。これは通常、ネットワークの停止、サーバーのクラッシュ、またはその他の理由が原因です。

2. PHP を使用してアップロード エラー メッセージを出力する

アップロード ファイル エラーが発生した場合、開発者が特定して解決できるように、通常はエラー メッセージを出力する必要があります。問題。アップロードエラー情報を出力するには、PHP のいくつかのグローバル変数と関数を使用する必要があります。

    エラーメッセージの表示方法
PHP におけるエラーメッセージの表示方法には、「ページ上に表示する」と「ログファイルに記録する」の 2 つがあります。開発中に、エラー メッセージを表示する方法のいずれかを選択できます。

開発環境では、デバッグを容易にするためにエラー情報をページに表示できます。運用環境では、機密情報の漏洩を防ぐために、エラー メッセージをログ ファイルに記録する必要があります。

PHP には error_reporting という関数があり、エラー レベルを設定するために使用されます。開発環境ではこれを E_ALL に設定でき、運用環境では E_ALL & ~E_NOTICE に設定できます。

    グローバル変数 $_FILES を使用して、アップロードされたファイルの情報を取得します。
PHP では、$_FILES グローバル変数を使用して、アップロードされたファイルの情報を取得します。アップロードされたファイルに関する情報を取得するには、この変数の name 属性を使用する必要があります。

以下はサンプル コードです:

<form action="upload.php" method="post" enctype="multipart/form-data">
  <input type="file" name="file">
  <input type="submit" value="上传">
</form>
ログイン後にコピー
PHP コードでは、$_FILES 変数を通じてアップロードされたファイル情報を取得できます:

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>";
}
ログイン後にコピー
    印刷アップロード エラーメッセージ
ファイルのアップロード中にエラーが発生した場合、開発者が問題を見つけやすくするために、エラー メッセージを出力する必要があります。アップロードに関する一般的な問題については、次のコードを参照してください。

switch ($_FILES["file"]["error"]) {
  case UPLOAD_ERR_INI_SIZE:
    echo "错误:上传文件大小超过了php.ini中指定的大小。";
    break;
  case UPLOAD_ERR_FORM_SIZE:
    echo "错误:上传文件大小超过了HTML表单中指定的大小。";
    break;
  case UPLOAD_ERR_PARTIAL:
    echo "错误:上传文件只有部分被上传。";
    break;
  case UPLOAD_ERR_NO_FILE:
    echo "错误:没有上传文件。";
    break;
  case UPLOAD_ERR_NO_TMP_DIR:
    echo "错误:找不到临时文件夹。";
    break;
  case UPLOAD_ERR_CANT_WRITE:
    echo "错误:无法将文件写入磁盘。";
    break;
  case UPLOAD_ERR_EXTENSION:
    echo "错误:文件上传受到扩展程序的影响。";
    break;
  default:
    echo "未知错误。";
    break;
}
ログイン後にコピー
    ファイルをサーバーにアップロードする
アップロードされたファイルを処理するときは、アップロードされたファイルを保存する必要もあります。ディレクトリ内のサーバーに送信します。 move_uploaded_file 関数を使用すると、ファイルを一時ディレクトリから指定したディレクトリに移動できます。

//检查上传目录是否存在
if (!file_exists("uploads/")) {
  mkdir("uploads/");
}

//将上传的文件从临时目录移动到指定目录中
move_uploaded_file($_FILES["file"]["tmp_name"],
  "uploads/" . $_FILES["file"]["name"]);
ログイン後にコピー
注: アップロードされたファイルを保存するときは、ファイル名の重複による上書きを避けるために、ファイルの名前を変更する必要があります。

3. 概要

この記事では、PHP でのファイル アップロード エラーと、アップロード エラー メッセージを印刷する方法を紹介します。ファイル アップロードの問題を解決する開発者に役立つことを願っています。 。アップロードされたファイルを処理するときは、アップロードされるファイルの種類やファイル サイズなどの制限など、セキュリティの問題に注意する必要があります。合理的なアップロード ファイル処理技術により、開発者はファイル アップロードの問題をより適切に処理し、Web アプリケーションのセキュリティとユーザー エクスペリエンスを向上させることができます。

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

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート