Как использовать загрузку файлов в Agile Toolkit 4.2

Есть ли где-нибудь полный пример рабочего кода файлового хранилища atk4.2?

Я искал в документах и ​​stackoverflow, и несколько примеров, которые я нашел, просто не работают для меня.

Нужно ли расширять Model_File или Model_Filestore_File?

Сначала выдает ошибку

Класс не определен в файле

Второй дает

Невозможно включить хранилище файлов/lib/Model/Filestore/File.php

Какой самый простой способ добавить загрузку файлов в CRUD?


person Priit    schedule 08.05.2012    source источник
comment
Итак, вы хотите знать, как загрузить файл с помощью PHP?   -  person Petah    schedule 08.05.2012
comment
Нет. Как загрузить файл с помощью agiletoolkit framework с помощью хранилища файлов.   -  person Priit    schedule 08.05.2012


Ответы (1)


Если вы хотите загружать файлы, используйте в своей модели следующее:

$this->add('filestore/Field_File','file_id');

поле должно ссылаться на filestore_file.id. Если вы хотите загрузить изображение с миниатюрой, то:

$this->add('filestore/Field_Image','picture_id');

После загрузки изображения и отправки формы «id» файла появится в соответствующем поле. Для Field_Image он также изменит размер миниатюры. Вы можете дополнительно настроить это, используя свою собственную модель изображения:

    ->setModel('MyImage');

class Model_MyImage extends filestore\Model_Image {
    public $default_thumb_width=32;
    public $default_thumb_height=32;
}

Это должно нормально работать с 4.2.0, но в ветке «разработка» в настоящее время есть некоторые уточнения, которые позволят иметь несколько размеров эскизов для каждого изображения.

person romaninsh    schedule 08.05.2012
comment
Большое спасибо, это работает очень хорошо, и я бы сам не понял этого за миллион лет. Есть ли какой-нибудь простой механизм для отображения ошибки, когда тип файла не поддерживается? На данный момент он просто показывает что-то вроде C:\fakepath\filename.xxx. Тоже чувствую себя довольно глупо, но не могли бы вы взглянуть на мою сетку просмотра и дать мне несколько советов, как добавить туда ссылку на файл ссылка - person Priit; 08.05.2012
comment
Благодаря силе наследования вы можете переопределить любой метод или любое свойство внутри вашей модели. Модель отвечает за импорт, поэтому вы можете либо создать там новый тип, либо проинструктировать пользователя о проблеме, создав исключение с помощью throw $this->exception('wrong file type'); - person romaninsh; 08.05.2012