ホームページ >バックエンド開発 >PHPチュートリアル >ファイルのアップロードに関する基本的な質問をする
s_uploaded_file と file_exists は両方ともファイルが存在するかどうかを確認しますか?パラメータはすべてパスですが、なぜファイルをアップロードするために is_uploaded_file を使用する必要があるのでしょうか?
あはは、これは歴史的なルーツを持つ質問です。 is_uploaded_file の使用は完全に自己防衛のためです
PHP は、アップロードされたファイルを処理するための 2 つのソリューションを提供します
move_uploaded_file
と
is_uploaded_file
コピーまたは名前変更
コピーと名前変更はどちらもファイル システム関数であり、もちろんファイルのアップロードのためだけではありません
copy 関数を使用して Linux ユーザー パスワード ファイル etc/password のコピーを作成します
PHP には register_globals スイッチも用意されており、これは受信変数をグローバル変数テーブルに自動的にインポートするために使用されます (php5.4 以降は利用できません)
このスイッチをオンにすると
変数 $file_name、$file_tmp、$file_type.... およびその他の変数が生成されます
、upload.php?file_tmp=etc/password も $ を生成しますfile_tmp 変数
次に、この $file_tmp が type=file または URL パラメータによって生成されたものであるかどうかを正確に知る必要があります
もちろん、php には保護メカニズムの層があるため、これは起こりません (これはあなたに任せます)自分自身)
ただし、コードは常に変更されるため、保守的である方が安全です。どこかに危機があるかも知れません