Как сделать загрузку файлов на основе форм в CakePHP?

Я давно в этом разбираюсь и могуне могу понять это. По сути, у меня есть страница добавления для моей модели, на которую можно добавить карту по URL или из файла загрузки. У меня есть все поля и проверка, но как и где я могу управлять загруженным файлом? Там должен быть какой-то простой способ сделать это. Спасибо!

Ответы на вопрос(3)

Решение Вопроса

<!--?php echo $form--->create(Model, array('type' => 'file')); ?>

Это позволит любым входным файлам фактически загружать файл на ваш сервер с$form->file(field) или же .$form->input(field, array('type' => 'file'))

После загрузки файла вы должны обработать все остальное внутри модели:

function beforeSave($created) {
    extract($this->data[Model][field]);
    if ($size && !$error) {
        move_uploaded_file($tmp_name, destination);
        $this->data[Model][field] = destination;
    }
    return true;
}

Это только основы, поэтому обязательно поиграйте, чтобы найти решение, которое наилучшим образом соответствует вашим потребностям.

 Imran Omar Bukhsh17 сент. 2011 г., 12:04
вот как я сделал функцию move_uploaded_file: move_uploaded_file ($ _ FILES ['данные'] [»tmp_name»] [»Вещь'] [»IPath»],»$ Назначения /». $ _ FILES [»данные'] [»название'] [»Вещь'] [»IPath»]);
 inkedmn18 авг. 2009 г., 14:38
это имя функции должно читатьсяmove_uploaded_file» :)
 Robert P18 авг. 2009 г., 15:15
Ах, спасибо, этобыли обновлены. Текстовая область неПроверьте мой синтаксис. ;)

а моем сайте есть хороший пример:Загрузка файла CakePHP с использованием Zend Components

 Gui Imamura05 дек. 2014 г., 06:31
Привет Гео. Я'Мы оставили комментарий к вашей статье в блоге. Пожалуйста, укажите версию CakePHP, которую вы использовали в своем примере. Благодарю.

НОТА: MeioUploadBehavior устарело. Вместоjrbasso предлагает.Upload Plugin

В дополнение к хорошим ответам, которые уже даны, я хочу намекнуть оMeioUploadBehaviorв настоящее время поддерживаетсяДжрабассо в Github, которая мне очень помогла в моем собственном проекте CakePHP.

Вы просто добавляете поведение к своей модели, используя$actsAs поле и в то же время указав любые пользовательские настройки. Затем создайте необходимые поля (подробно описанные в предоставленных документах) в вашей базе данных или настройте модель так, чтобы она не использовала таблицу базы данных. Наконец, настройте форму на странице добавления, также описанной в прилагаемой документации. Тогда поведение позаботится обо всем остальном для вас.

Ваш ответ на вопрос