第8章 リクエスト情報 / 第5回 模擬試験

PHPの`$_FILES`によるアップロード処理の入力フォームに関する次の記述のうち、正しいものはどれか。

ファイルアップロード用のフォームには`<input type="file">`を使用する。 正解
ファイルアップロード用のフォームには`<form>`タグの`enctype`属性を指定する必要はない。
ファイルアップロードには`<input type="text">`を使用するのが標準的な方法である。
ファイルアップロードフォームは、GETメソッドでのみ送信可能である。
解説
ファイルを選択させるフォーム部品には`<input type="file">`を使用します。 他の選択肢が誤りである理由は次の通りです。 ・ファイルアップロード用のフォームでは、`<form>`タグに`enctype="multipart/form-data"`を明示的に指定する必要があります。これを省略すると、選択したファイルの中身が正しく送信されません。 ・`<input type="text">`はテキスト入力用の部品で、ファイル選択には使えません。ファイル選択専用の`<input type="file">`が必要です。 ・ファイルアップロードは通常`method="post"`で送信する必要があります。GETメソッドはURLのクエリ文字列でデータを送る仕組みのため、ファイルのバイナリデータを正しく送信できません。「GETメソッドでのみ送信可能」は誤りです。 例: ``` <form method="post" action="/upload" enctype="multipart/form-data"> <input type="file" name="userfile"> <button type="submit">アップロード</button> </form> ``` (参照: 独習PHP 第4版 第8章 リクエスト情報 8.8.2節 入力フォームでの注意点 p.398〜399)