複数ファイルアップロードフォーム

CakePHP 2.0からはHTML5が標準でサポートとなり、複数ファイルアップロードのためのフォーム記述が容易になりました。

View (ビュー)

<?php
    echo $this->Form->create( 'Upload', array( 'type'=>'file', 'url' => '/uploadmulti', 'enctype' => 'multipart/form-data'));
    echo $this->Form->input( 'files.', array( 'type' => 'file', 'multiple'));
    echo $this->Form->submit( 'upload');
    echo $this->Form->end();
?>

配列

Array
(
    [files] => Array
        (
            [0] => Array
                (
                    [name] => bg-home.png
                    [type] => image/png
                    [tmp_name] => /var/tmp/phpdxbKr6
                    [error] => 0
                    [size] => 353271
                )
            [1] => Array
                (
                    [name] => bg-home.jpg
                    [type] => image/jpeg
                    [tmp_name] => /var/tmp/phpkWir95
                    [error] => 0
                    [size] => 52376
                )
        )
)

参考:HTML 5 Multiple File Upload With Cake

CakePHP 1.3での方法

View (ビュー)

以下のようにForm->inputのフィールド名をかえると(ドットの後にスペース)、コントローラが受け取る配列は2.xと同じになります。

<?php 
    echo $form->create( 'Upload', array( 'type'=>'file', 'url' => '/upload/multiupload', 'enctype' => 'multipart/form-data'));
    echo $this->Form->input( 'files. ', array( 'type' => 'file', 'multiple' => 'multiple'));
    echo $this->Form->submit( 'upload');
    echo $form->end();
?>
  • このエントリーをはてなブックマークに追加

関連記事

CakeEmailでメール送信(@gmail)

CakePHP 2になって追加されたクラスCakeEmailがシンプルに使えます。これを使用してメール送信を行う処理を実装してみました。 CakeEmailクラスの読み込み /app/Config

checkボックスを実装

selectボックスに引き続いてcheckボックスの実装方法をおさらいしてみます。 コードは、CakePHP 2と1.3両方で実装可能です。デモ モデルは、こちらも以下 CREATE TA

多言語サイト向けに翻訳ファイルを使って翻訳を行う

CakePHPには、翻訳をビヘイビアを使用する方法と翻訳ファイルを使用する方法の2つがあるそうです。(他にもあるのかな?) 今回は、翻訳ファイルを使用して言語の切り替えを行い、その言語設定をCook

ハッシュ関数の選択とハッシュ化処理

CakePHPでは、ログイン時にはpasswordを自動的にハッシュ化して認証を行ってくれますが、そのパスワードを登録する際は、明示的にハッシュ化する必要があります。 ハッシュ関数の選択 ハッ

FormヘルパーのMagicOption (マジックオプション) 

Formヘルパーでは、「フィールド名」,「テーブルカラムのデータ型」もしくはモデルの「バリデーション設定」によりフォーム要素を決定したり、自動で属性を付与する「マジックオプション」と呼ばれるものがある

Blowfishを使用してハッシュ化する

使用方法 Blowfishを採用してハッシュ化を行う場合、Securityクラスのhashメソッドを呼び出します。第2引数に'blowfish'を指定し、第3引数を指定しないもしくはfalseにしま

RSSフィードの取得

コンロトーラ public function getrssfeed() { try { $newsItems = $this->Rss->read( 'http://

hasOne アソシエーション

hasOneアソシエーションはテーブル間で1つのレコードに対して他のテーブルに紐付くレコードが1つの場合にjoinする場合に使用します。 CakePHPのドキュメントにならってUserモデルとP

Syslogログエンジン

2.4から「Syslog」ログクラスが追加され、簡単にSyslogを使用できるようになりました。 CakePHP側の設定はbootstrap.php内のCakeLogコンフィグのengineを'Sy

独自のバリデーションルールを作成

CakePHPで組み込みバリデーションルールをつくる方法は、正規表現を定義する方法と独自メソッドを定義する方法の2つがあるようです。 参考 Custom Validation Rules 正規

Comment

@econimicers にコメントする コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

PAGE TOP ↑