FuelPHP Uploadクラス

FuelPHPのUploadクラスは、ファイルのアップロード処理を扱うさまざまなメソッドを提供する。

<form>タグ

入力フォームの注意点として、HTMLのform要素にenctype="multipart/form-data"を指定する必要がある。

<form action="http://itref.fc2web.com" enctype="multipart/form-data">

設定ファイル(upload.php)

Uploadクラスを使用するには設定ファイルが必要である。デフォルトの設定は、COREPATH/config/upload.phpに記述されているが、APPPATH/config/upload.phpファイルを作成することで、設定をオーバーライドすることができる。

config/upload.php
設定項目説明
pathアップロードされたファイルを保存するディレクトリ
auto_processUploadクラス使用時に自動的にprocessメソッドを実行するか

メソッド

Uploadクラスのメソッド
メソッド説明
processアップロードされたファイルの検証
is_valid検証に成功したファイルがあるかチェックする
get_files検証に成功したアップロードファイルの情報を取得
get_errors検証に失敗したアップロードファイルのエラーを取得
save検証に成功したファイルの保存

get_filesメソッド

static function get_files($index = null)
$index
アップロードしたファイルの番号(0から)

processメソッド

Uploadクラスを利用するには、まずコントローラでUpload::processメソッドを呼び出し、ファイルの検証やファイル情報の取得を行う。なお、設定(COREPATH/config/upload.php又はAPPPATH/config/upload.php)を変更する必要が無く、かつ設定ファイルでauto_processが有効になっている場合は、processメソッドを明示的に呼び出さなくても自動的に実行される。

static void process($config = array())

is_validメソッド

アップロードされたファイルを検証するには、Upload::is_validメソッドを使用する。

static boolean is_valid()

is_validメソッドは、アップロードバリデーションに成功したアップロードファイルが一つ以上あればtrueを返す。

saveメソッド

アップロードされたファイルを保存するには、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」に変更する。