Я пытаюсь сделать загрузку мультимедиа для всего приложения, которая должна быть доступна для любого контроллера / модели.
Я подумал о таблице media
, которая содержит записи всех загруженных файлов, моя схема выглядит следующим образом:
id
controller //to keep the reference from which controller the file was uploaded
foreign_key //since files should be uploaded to specific records, I need this id
filename
extension
fullname
size
created
modified
Я не уверен, что будет лучшим подходом в этом. Я думал о компонентах, плагинах и поведении, но все еще не уверен.
Мое приложение имеет много разных контроллеров с разными записями.
Например, он управляет проектами и теперь должен иметь возможность прикреплять PDF-файлы к конкретным проектам из маски редактирования проекта.
Поскольку эта функция нужна другим контроллерам, я тоже хочу написать ее для всего приложения.
Я почти уверен, что мне нужен помощник для вызова функции загрузки из масок.
Может что-то вроде: echo $this->Media->uploadMask();
, который предоставляет мне готовую маску загрузки для контроллера и идентификатора, который я сейчас редактирую.
Но я не знаю, по какому маршруту я должен позвонить для загрузки. Что-то вроде /media/upload
было бы очень хорошо, но я не уверен, правильно ли это вписывается в MVC-подход.
Было бы лучше позвонить с моих конкретных контроллеров? Или лучше AJAX-загрузка на обычный контроллер / модель?