Я использую meioupload для загрузки изображений в cakePHP, я использую таблицу с именем 'attachment', чтобы сохранить информацию о загруженном изображении, это структура моей таблицы вложений:
CREATE TABLE IF NOT EXISTS `attachments` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
`class` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`foreign_id` bigint(20) unsigned NOT NULL,
`filename` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`dir` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`mimetype` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
`filesize` bigint(20) DEFAULT NULL,
`height` bigint(20) DEFAULT NULL,
`width` bigint(20) DEFAULT NULL,
`description` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
И у меня сейчас есть другой2 таблицы, связанные с этим через поле класса (имя таблицы) и foreign_id.Теперь мой вопрос: как я могу сохранить загруженное изображение в отдельную папку для каждой модели?
Например: я хотел бы сохранить изображение своего сообщения в папку «post» и сохранить изображение моего профиля в «папка профиля
ОБНОВЛЕНИЕ: в моей модели вложений
public $actsAs = array(
'MeioUpload' => array(
'filename' => array(
'dir' => 'post', #i set the default folder as 'post' at the moment
'create_directory' => true,
'allowed_mime' => array(
'image/jpeg',
'image/pjpeg',
'image/png'
),
'allowed_ext' => array(
'.jpg',
'.jpeg',
'.png'
),
'thumbsizes' => array(
'large' => array(
'width' => 500,
'height' => 500
),
'small' => array(
'width' => 100,
'height' => 100
)
)
)
)
);
ОБНОВЛЕНИЕ # 2 : допустим, у меня сейчас 3 таблицы "Вложение "" post "и" профиль ", которое actA meioupload - это" вложение ", каждый раз, когда я загружаю изображение через" post "или" профиль ", я сохраняю информацию об изображении в полях" attachment ", foreign_id и classв «вложении» - это то, которое соединяет «вложение» с «постом» и «профилем».
ОБНОВЛЕНИЕ № 3: я последовал предложению Данхамзза об использовании поведения на лету и нашел это решение, и оно работает.
$this->Attachment->Behaviors->attach(
'MeioUpload', array(
'filename' => array(
'dir' => 'avatars'
)
));
Спасибо