複数ファイルをアップロードできるjQueryのプラグイン「Uploadify」をCakePHPで使う方法

CakePHP
記事内に広告が含まれています。

前回に続き、ファイルをまとめてアップロードする jQuery のプラグイン「Uploadify」の使い方。今回はCakePHPでの設置の方法を解説したいと思います。

「Uploadify」の設置

設置構成は以下のようにします。

 

上記構成で説明します。
前回のアップロードフォルダは「uploads」でしたが、今回は media とします。
ちなみに media は medium の複数形ですので、覚えておくと良いことがあるかも。

DBへの書き込みも行うので、適当にこのようなSQLでテーブル作成。

 

view

アップロードフォーム(/app/views/upform.ctp)

レイアウトかヘッダ辺りで jQuery と uploadify を読み込んで下さい。

 

controller

アップロードフォーム用アクション : upform

こちらは単にページ表示するだけです。

 

アップロード用アクション

uploadify.php を元に作成しています。
また途中にあるパスは app.php で以下のように設定しています。

PIC_PATH_MEDIA
define(‘PIC_PATH_MEDIA’, WWW_ROOT . ‘media/img/’); // WEBルートから

PIC_DIR_PATH_MEDIA
define(‘PIC_DIR_PATH_MEDIA’, “/” . “media/img/”); // 絶対パス

PIC_WIDTH_MIDDLE
PIC_WIDTH_SMALL
PIC_WIDTH_MOBILE には、保存する画像のピクセルサイズを指定しています。

 

CakePHPなので「$_POST」とか「$_FILES」を $this->data で受信したかったのですが、うまく取得できなかったので、「$_POST」「$_FILES」形式で取得しています。

アップロードの処理は独自で作成したコンポーネントを使用しています。

やってることは、tmpデータを指定されたファイル名でサイズそのままと、サイズを変えてコピーするだけです。

戻り値はそれぞれ、ファイルネームを返しています。
戻ってきたら、DBにインサートしているだけ。その辺りは問題ないと思います。

model

Medium.php

最後にモデル。
特にアップロードに関して処理していませんので、以下のように。

 

と、早足ですが、とりあえず完成。私の環境(ウェブサーバと Windows7 に作ったローカル環境)で稼働しています。

うまく動かないって方は、まずは通常の PHP で動くかどうかを試してから CakePHP にとりかかるのがよろしいかと思います。

ちなみにこの CakePHP 版を作るのに2日掛けてしまいました。
せっかくの力作ですので、何かのお役に立てれば幸いです。

 

関連するかもしれないポスト

ファイルをまとめてアップロードする jQuery のプラグイン「Uploadify」の使い方解説
画像ファイルを複数枚一気にアップロード出来ないかと探していましたら「Uploadify」というjQueryのプラグインを発見しましたので、その設置方法を忘備録代わりにポストです。

 

タイトルとURLをコピーしました