ホームページ  >  記事  >  バックエンド開発  >  PHPでファイルを送信する

PHPでファイルを送信する

WBOY
WBOYオリジナル
2023-05-24 08:51:221068ブラウズ

PHP は、フォーム データの処理、動的ページの生成などに使用できるサーバー側スクリプト言語です。一般的なアプリケーション シナリオの 1 つは、フォームを介してファイルをアップロードすることです。この記事では、アップロードフォームの処理、アップロードされたファイルの保存、アップロードされるファイルの種類とサイズの制限など、PHPのファイルアップロード機能を紹介します。

1. アップロード フォームの処理

HTML では、form タグを通じてフォームを作成し、input タグの type="file" 属性を使用してファイルのアップロードを許可できます。 PHP では、$_FILES グローバル変数を使用して、アップロードされたファイルの情報を取得できます。

フォームにファイルをアップロードするための入力タグと送信ボタンが含まれているとします。

04dbbc2b78191ba795df1e4d8b29f86f
142adee165ef41066428c0cfe35ac626

ここで注意すべき点がいくつかあります:

  1. アクション属性は、ファイルをアップロードするための処理スクリプトであるフォーム送信用のアドレスを指定します。 . ここではupload.phpファイルを使用します。
  2. method 属性はフォーム送信メソッドを指定します。ここでは post メソッドが使用されます。
  3. enctype 属性はフォーム データのエンコード方法を指定します。ファイルのアップロードを許可するには、multipart/form-data を使用する必要があります。

次に、upload.php ファイルでファイルのアップロード要求を処理します。

2. アップロードされたファイルのストレージ

まず、アップロードされたファイルが存在するかどうかを確認する必要があります。存在する場合は、$_FILES 配列を通じてアップロードされたファイルの関連情報を取得できます。

##if( isset($_FILES["fileToUpload"])) {

$file_name = $_FILES["fileToUpload"]["name"];
$file_tmp = $_FILES["fileToUpload"]["tmp_name"];
$file_size = $_FILES["fileToUpload"]["size"];

}

このうち、ファイル名は $name 属性を通じて取得できます。サイズは $size 属性を通じて取得でき、ファイルの一時パスは $tmp_name 属性を通じて取得できます。

次に、アップロードされたファイルをターゲット フォルダーに移動する必要があります。ここでは、move_uploaded_file() 関数を使用します:

$target_dir = "uploads/";

$target_file = $target_dir .basename($file_name);
if(move_uploaded_file($file_tmp, $target_file)) {

echo "The file ". basename($file_name). " has been uploaded.";

} else{

echo "Sorry, there was an error uploading your file.";

}

上記のコード, $target_dir はアップロードされたファイルの保存ディレクトリで、basename() 関数を使用してファイル名を取得します。ファイルの移動には move_uploaded_file() 関数を使用します。最初のパラメータはファイルの一時パス、2 番目のパラメータはターゲット パスです。ファイルが正常に移動された場合は、アップロード成功のメッセージがユーザーに返されます。それ以外の場合は、アップロード失敗のメッセージが返されます。

3. アップロードされるファイルの種類とサイズを制限する

アップロード システムのセキュリティとパフォーマンスを確保するには、アップロードされるファイルを制限する必要があります。これには、ファイルの種類とファイル サイズの両方が含まれます。

    ファイル タイプの制限
PHP の in_array() 関数を使用して、アップロードされたファイルのタイプが正当かどうかを判断します。具体的には、アップロードが許可されるファイル タイプの配列を定義し、in_array() 関数を使用して、アップロードされたファイル タイプがアップロードが許可されるファイル タイプの配列に含まれるかどうかを判断する必要があります。

$allowed_types = array('jpg', 'jpeg', 'png', 'gif');

$file_type = strto lower(pathinfo($file_name,PATHINFO_EXTENSION));
if( in_array($file_type, $allowed_types)){

// 合法文件类型

} else{

echo "Sorry, only JPG, JPEG, PNG, GIF files are allowed.";

}

上記のコードでは、pathinfo() 関数を使用してファイルを取得します。接尾辞 name の場合、strto lower() 関数はそれを小文字に変換し、in_array() 関数はアップロードが許可されているファイル タイプの配列内にあるかどうかを判断します。

    ファイル サイズ制限
PHP のファイル アップロード設定を使用して、アップロードされるファイルのサイズを制限します。これは、php.ini ファイルで設定できます。例:

post_max_size=8M

upload_max_filesize=2M

ここでの post_max_size は POST データの最大長を表し、upload_max_filesize はアップロードされるファイルの最大サイズを表します。ファイル サイズが制限を満たしていない場合、$_FILES 配列にはアップロードされたファイルに関する情報が含まれないことに注意してください。

概要:

PHP でファイル アップロード関数を実装するには、次の手順が必要です。

    アップロード ファイルの入力タグと送信ボタンを含むフォームを作成します。
  1. ファイルをアップロードするための処理スクリプトでは、$_FILES グローバル変数を使用して、アップロードされたファイルの情報を取得します。
  2. アップロードしたファイルを目的のフォルダーに移動します。
  3. ファイルの種類やファイル サイズなど、アップロードされたファイルにセキュリティとパフォーマンスの制限を適用します。
上記の方法でファイルアップロード機能を実装することで、Web アプリケーションの機能がより充実し、ユーザーエクスペリエンスが向上します。

以上がPHPでファイルを送信するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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