PHP は、フォーム データの処理、動的ページの生成などに使用できるサーバー側スクリプト言語です。一般的なアプリケーション シナリオの 1 つは、フォームを介してファイルをアップロードすることです。この記事では、アップロードフォームの処理、アップロードされたファイルの保存、アップロードされるファイルの種類とサイズの制限など、PHPのファイルアップロード機能を紹介します。
1. アップロード フォームの処理
HTML では、form タグを通じてフォームを作成し、input タグの type="file" 属性を使用してファイルのアップロードを許可できます。 PHP では、$_FILES グローバル変数を使用して、アップロードされたファイルの情報を取得できます。
フォームにファイルをアップロードするための入力タグと送信ボタンが含まれているとします。
ここで注意すべき点がいくつかあります:
- アクション属性は、ファイルをアップロードするための処理スクリプトであるフォーム送信用のアドレスを指定します。 . ここではupload.phpファイルを使用します。
- method 属性はフォーム送信メソッドを指定します。ここでは post メソッドが使用されます。
- 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 でファイル アップロード関数を実装するには、次の手順が必要です。
アップロード ファイルの入力タグと送信ボタンを含むフォームを作成します。 - ファイルをアップロードするための処理スクリプトでは、$_FILES グローバル変数を使用して、アップロードされたファイルの情報を取得します。
- アップロードしたファイルを目的のフォルダーに移動します。
- ファイルの種類やファイル サイズなど、アップロードされたファイルにセキュリティとパフォーマンスの制限を適用します。
-
上記の方法でファイルアップロード機能を実装することで、Web アプリケーションの機能がより充実し、ユーザーエクスペリエンスが向上します。
以上がPHPでファイルを送信するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。