FuelPHPのUploadクラスは、ファイルのアップロード処理を扱うさまざまなメソッドを提供する。
入力フォームの注意点として、HTMLのform要素にenctype="multipart/form-data"を指定する必要がある。
<form action="http://itref.fc2web.com" enctype="multipart/form-data">
Uploadクラスを使用するには設定ファイルが必要である。デフォルトの設定は、COREPATH/config/upload.phpに記述されているが、APPPATH/config/upload.phpファイルを作成することで、設定をオーバーライドすることができる。
| 設定項目 | 説明 |
|---|---|
path | アップロードされたファイルを保存するディレクトリ |
auto_process | Uploadクラス使用時に自動的にprocessメソッドを実行するか |
| メソッド | 説明 |
|---|---|
process | アップロードされたファイルの検証 |
is_valid | 検証に成功したファイルがあるかチェックする |
get_files | 検証に成功したアップロードファイルの情報を取得 |
get_errors | 検証に失敗したアップロードファイルのエラーを取得 |
save | 検証に成功したファイルの保存 |
static function get_files($index = null)
Uploadクラスを利用するには、まずコントローラでUpload::processメソッドを呼び出し、ファイルの検証やファイル情報の取得を行う。なお、設定(COREPATH/config/upload.php又はAPPPATH/config/upload.php)を変更する必要が無く、かつ設定ファイルでauto_processが有効になっている場合は、processメソッドを明示的に呼び出さなくても自動的に実行される。
static void process($config = array())
アップロードされたファイルを検証するには、Upload::is_validメソッドを使用する。
static boolean is_valid()
is_validメソッドは、アップロードバリデーションに成功したアップロードファイルが一つ以上あればtrueを返す。
アップロードされたファイルを保存するには、Upload::saveメソッドを使用する。
static void save([$integer [, $array [, $string]]])
if (Upload::is_valid()) {
Upload::save();
}
Uploadクラスを使用したPHPスクリプトを実行した際、「ErrorException [ Error ]: Call to undefined function FuelPHP\Upload\finfo_open()」と表示される場合、extensionが有効になっていない。php.iniを開いて「;extention = php_fileinfo.dll」を「extention = php_fileinfo.dll」に変更する。