phalconのアップロードファイルの操作


以前にも、少しふれましたが、ファイルのアップロードに関する補足です。
phalconのrequest(リクエスト)

おさらいですが、ファイルの取得方法

if($this->request->hasFiles()){
//アップロードファイルがあるかどうかをチェックします。
    foreach ($this->request->getUploadedFiles() as $file) {
        //アップロードされたファイルを取得、アクセスします。
        echo $file->getName(), " ", $file->getSize(), "\n";
    }
}

ここでの $file は、Class Phalcon\Http\Request\File のインスタンスです。

このクラスの主なメソッドは、

アップロードされたファイルの実名

getName()

phpでいうところの、スーパーグローバルの$_FILESのnameを取得します。

アップロードされたファイルの一時ファイル名

getTempName ()

phpでいうところの、スーパーグローバルの$_FILESのtmp_nameを取得します。

アップロードされたファイルのサイズ

getSize  ()

phpでいうところの、スーパーグローバルの$_FILESのsizeを取得します。

アップロードされたファイルのファイルの種類

getType  ()

phpでいうところの、スーパーグローバルの$_FILESのtypeを取得します。

アップロードされたファイルのエラー

getError  ()

phpでいうところの、スーパーグローバルの$_FILESのerrorを取得します。

アップロードされたファイルの移動

アップロードされたファイルを一時的に保管されている場所から、自分が保存したい場所に移動します。

moveTo  ("引数は保管したい場所")

phpでいうところの、move_uploaded_fileと同じ役割を果たします。

まとめると、
ファイルをアップロードし時の処理はしたのような流れで行う。
もちろん、ファイルの種類とかのチェックも保存前に入れるといいと思います。

if($this->request->hasFiles()){
//アップロードファイルがあるかどうかをチェックします。
	$dir_path = APP_PATH.'files';
	//画像を保管する場所、なければ作成
	//mkdirは引数の2番目にアクセス制限を指定できます。
	if(is_dir($dir_path) === false){
		mkdir($dir_path);
	}
    foreach ($this->request->getUploadedFiles() as $file) {
        //アップロードされたファイルを取得し、移動させます。
        $file->moveTo($dir_path. DIRECTORY_SEPARATOR . $file->getName());
    }
}

mkdirの詳細はphpマニュアル(http://php.net/manual/ja/function.mkdir.php


投稿日: 2016年7月17日
カテゴリー: phalcon|php | 投稿者: