Web アプリケーションで使用しているモデルのUploader
プラグインを使用しようとしています。ここに示すように、名前を付けた構成で使用しました。Behavior
User
filename
<?php
class Avatar extends AppModel {
public $name = 'Avatar';
public $actsAs = array (
'Uploader.Attachment' => array (
'filename' => array (
'name' => 'setNameAsImgId',
'saveAsFilename' => true,
'uploadDir' => '/files/avatars/160/',
'dbColumn' => 'filename',
'defaultPath' => 'default.png',
'maxNameLength' => 20,
'overwrite' => true,
'stopSave' => true,
'allowEmpty' => false,
'transforms' => array (
array('method' => 'resize', 'width' => 160, 'height' => 160, 'dbColumn' => 'filename', 'append' => false, 'overwrite' => true)
)
)
)
);
// and so on...
?>
この構成では、ファイルをフォルダーに保存します。このフォルダーには、コントローラー/files/avatars/160
を介してこの方法でサイズが 160 ピクセルのすべての画像が保存されます。Users
<?php
class UsersController extends AppController {
public function add () {
if ($this->User->Avatar->save($this->request->data)) {
// do some code...
}
}
ビューadd
に次のコードを挿入して、ファイルをアップロードします。
echo $this->Form->input('Avatar.filename', array('type' => 'file', 'label'=>'Upload the avatar '));
上の例のように名前を付けた構成を 1 つだけ保存すると、これはうまく機能しますfilename
。私の問題は、同じ画像の異なるサイズとトリミングを保存する必要があることです。そのため、次のようなサイズのリストを保存したいと思います。
/files/avatars/160/filename.jpg
/files/avatars/48/filename.jpg
Avatar
これを行うために、モデルに別の構成を追加することを考えました
<?php
class Avatar extends AppModel {
public $name = 'Avatar';
public $actsAs = array (
'Uploader.Attachment' => array (
'filename' => array (
'name' => 'setNameAsImgId',
'saveAsFilename' => true,
'uploadDir' => '/files/avatars/160/',
'dbColumn' => 'filename',
'defaultPath' => 'default.png',
'maxNameLength' => 20,
'overwrite' => true,
'stopSave' => true,
'allowEmpty' => false,
'transforms' => array (
array('method' => 'resize', 'width' => 160, 'height' => 160, 'dbColumn' => 'filename', 'append' => false, 'overwrite' => true)
)
),
'small' => array (
'name' => 'setNameAsImgId',
'saveAsFilename' => true,
'uploadDir' => '/files/avatars/48/',
'dbColumn' => 'filename',
'defaultPath' => 'default.png',
'maxNameLength' => 20,
'overwrite' => true,
'stopSave' => true,
'allowEmpty' => false,
'transforms' => array (
array('method' => 'resize', 'width' => 48, 'height' => 48, 'dbColumn' => 'filename', 'append' => false, 'overwrite' => true)
)
)
)
);
// and so on...
?>
UsersController
で同じ画像の複数のクロップを保存するには、 をどのように設定すればよいAvatar
ですか? add
ビューを変更して機能させる必要がありますか?フォームで複数の入力ファイルを使用しません。