プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
FuelPHP1.6、ファイルのアップロードを理解する。
どうやらFuelPHPのファイルアップロードはやり方が2つあるらしい。

ひとつは「Input::file()」でファイルを受け取るやり方。
例えばこんな感じφ(--)
public function action_test08()
{
    $p_file = Input::file();

    foreach($p_file     as $file){
        if(is_uploaded_file($file['tmp_name'])){
            move_uploaded_file($file['tmp_name'], $file['name']);
        }
    }
}

要するに普通のPHPの「$_FILE」を使うのと一緒ですね。
ちなみにコードを見やすくするためにエラー処理は省いてあります。
実際にはもうちょっとあれやこれやとやることになるでしょう。

もうひとつは「Uploadクラス」を使うやり方。
FuelPHPでファイルのアップロード関連の情報を探すと、大抵はこちらが出てきます。
せっかく部品を用意したんだからそっち使え。ってことですかね(--?

Uploadクラスの使い方ですが、大抵はまず最初に設定ファイル

fuel/core/config/upload.php



fuel/app/config/upload.php

としてコピーしろと書いてあります。

これはまぁ「core/」の中をなるべく変更するなって理由でしょうね。
「app/」にコピった設定ファイルの中身は「core/」の設定を上書きするので
設定値の変更は「app/」にコピった「upload.php」に書きなさいなのでしょう。

「取りあえず動かしてみたいだけだから設定なんて変えないよ」な人は
この工程(upload.phpのコピー)を飛ばしても特に支障はありません。

設定項目についての説明は書くのが面倒くさいので省略します。

http://press.nekoget.com/fuelphp_doc/classes/upload/config.html

を見て適当に調整してください。
ちなみに

・auto_process
・path
・auto_rename
・overwrite

は意識して確認しておいた方が良いと思います。

「auto_process」は「Upload::process();」の有無に影響します。
※詳細は「Uploadクラスを使ったら同じファイルが2つアップロードされてビビったお話。」をご覧ください

「path」はファイルのアップロード先です。
初期値は空になっています。
アップロードしたファイルが行方不明にならないようにご注意ください。

「auto_rename」「overwrite」は同名ファイルの上書き関連です。
※詳細は「Uploadクラスを使って同名のファイルをアップロードしたときに上書きする。」をご覧ください

ここまでが設定ファイルのお話(--)b

あと事前準備として「finfo_open()」が有効かを確認しておくと後が楽です。
※詳細は「「Call to undefined function FuelPHP\Upload\finfo_open()」エラー」をご覧ください

ほんで、実際のコードは例えばこんな感じφ(--)
public function action_test09()
{
    Upload::process();

    if (Upload::is_valid()){
        Upload::save();

        var_dump(Upload::get_files());
        var_dump(Upload::get_errors());

    }else{
        print "エラー";
    }
}

「Upload::process()」は設定ファイルの「auto_process」が「true」の場合は不要です。
「Upload::is_valid()」がアップロード対象のファイルのチェックです。
そして「Upload::save()」で実際にアップロードしたファイルを保存しています。

おまけ的に「Upload::get_files()」ではアップロードしたファイルの中身や付帯情報、
「Upload::get_errors()」ではエラーの情報が取得できます。

細かいあれやこれやはそのうち見ていくかもしれませんが、今日のところはそんな感じ(--)ノ
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:FuelPHP  thema:パソコンな日々 - genre:コンピュータ  Posted by ササキマコト 

  関連記事