Skip to content
これは pieceofcake2/upload のドキュメントです。pieceofcake2/cakephp 用の CakePHP 2.x プラグインです。 このフォークについて

Upload ドキュメント ​

Upload プラグインは、MeioUpload、 UploadPack などのパッケージや PHP のドキュメント から集めた手法を使って、 ファイルをまっとうにアップロードしようという試みです。

pieceofcake2/upload は、pieceofcake2/cakephp 向けの josegonzalez/cakephp-upload (2.x ブランチ) の フォークです。josegonzalez/cakephp-upload パッケージを置き換えます。このドキュメントは オリジナルのドキュメント をもとにしています。

はじめに ​

このプラグインでできること ​

  • Upload プラグインは、アプリケーションのフォームから送信されたファイルを、(デフォルトでは) webroot/files ディレクトリに、モデル名と primaryKey フィールドごとに整理して転送します。
  • ファイルシステムからなど、プログラムでファイルを移動することもできます。
  • ファイルを保存するパスはカスタマイズできます。
  • ビヘイビアのオプションで thumbnailSizes オプションを設定すると、画像ファイルのサムネイルも作成できます。
  • 複数のファイルを、別々のフィールドに同時にアップロードすることもできます。
  • アップロードのフィールドは、アップロード先のパスやサムネイルのオプションなど、それぞれ独立して設定できます。
  • アップロードしたファイルの情報は、MySQL データベースなどのデータストアに保存できます。
  • よくあるルールでのバリデーションに役立つ、さまざまなバリデーションルールが用意されています。

このプラグインでできないこと ​

  • ファイル形式の変換はしません。JPG を PNG に変換するといった用途には使えません。
  • 画像に透かしを入れることはしません。

背景 ​

オリジナルの作者より: Media Plugin は複雑すぎるし、MeioUpload に最新の更新をマージするのは 本当に面倒だったので、こうしてまた別のアップロードプラグインを作っています。1 か月後にはまた別のものを 作って、"YAUP" と名付けるでしょう。

インストール ​

要件 ​

  • PHP 8.0+
  • pieceofcake2/cakephp 2.12+
  • GD または Imagick の PHP 拡張モジュール (サムネイルの作成に必要)

Composer を使う ​

bash
composer require pieceofcake2/upload

プラグインのタイプは cakephp-plugin なので、composer/installers によってプラグインディレクトリに インストールされます。アプリケーションの composer.json では、composer/installers プラグインを 許可し、installer-paths を設定する 必要があります。そうしないと、CakePlugin::load() が 見つけられるディレクトリにプラグインがインストールされません。

json
{
    "config": {
        "allow-plugins": {
            "composer/installers": true
        }
    },
    "extra": {
        "installer-paths": {
            "plugins/{$name}/": ["type:cakephp-plugin"]
        }
    }
}
レイアウトinstaller-paths
モダン (config/、src/、templates/、plugins/)"plugins/{$name}/": ["type:cakephp-plugin"]
レガシー (app/Config/、app/Plugin/)"app/Plugin/{$name}/": ["type:cakephp-plugin"]

/plugins/Upload (レガシーレイアウトでは /app/Plugin/Upload) を .gitignore ファイルに追加することを お勧めします。(理由は こちら を読んでください。)

手動 ​

  • これをダウンロードします: https://github.com/pieceofcake2/upload/archive/2.x.zip
  • ダウンロードしたファイルを展開します。
  • できたフォルダを plugins (レガシーレイアウトでは app/Plugin) にコピーします
  • コピーしたフォルダの名前を Upload に変更します

Git Clone ​

plugins ディレクトリ (レガシーレイアウトでは app/Plugin) で次のように入力します。

bash
git clone -b 2.x https://github.com/pieceofcake2/upload.git Upload

Imagick のサポート ​

Imagick のサポートを有効にするには、Imagick がインストールされている 必要があります。

bash
# Debian systems
sudo apt-get install php-imagick

# From pecl
pecl install imagick

Imagick をインストールできない場合は、代わりにフィールドのオプションで 'thumbnailMethod' => 'php' (GD) を設定してください。

プラグインの有効化 ​

config/bootstrap.php (レガシーレイアウトでは app/Config/bootstrap.php) ファイルでプラグインを 有効にします。

php
CakePlugin::load('Upload');

すでに CakePlugin::loadAll(); を使っている場合は不要です。

使い方 ​

php
class User extends AppModel
{
    public $actsAs = [
        'Upload.Upload' => [
            'photo' => [
                'thumbnailMethod' => 'php',
                'thumbnailSizes' => [
                    'thumb' => '80x80',
                ],
            ],
        ],
    ];
}

デフォルトでは、ファイルは {ROOT}webroot{DS}files{DS}{model}{DS}{field}{DS} に保存されます。 {ROOT} は rootDir オプションです。rootDir のデフォルトは WWW_ROOT の親ディレクトリなので、 モダンレイアウト (webroot/) でもレガシーレイアウト (app/webroot/) でも、ファイルは webroot に 保存されます。

Imagick 拡張モジュールがインストールされていない場合は、'thumbnailMethod' => 'php' (GD) を 使ってください。

その他のドキュメント ​

由来 ​

このパッケージは FriendsOfCake/cakephp-upload (Packagist では josegonzalez/cakephp-upload、アップストリームの最終バージョンは 1.3.1) の メンテナンスされたフォークで、元の作者は Jose Diaz-Gonzalez です。 pieceofcake2 が、モダンな PHP で動く CakePHP 2 向けに メンテナンスしています。オリジナルからの変更点は フォーク以降のコミット履歴 で確認できます。

著作権とライセンスについては LICENSE を参照してください。Cake Software Foundation とは関係ありません。