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
」に変更する。