Я занимаюсь этим некоторое время и не могу понять. В основном у меня есть страница добавления для моей модели, которую вы можете добавить карту из URL-адреса или из загрузки файла. У меня есть все поля и проверка, но как и где я могу управлять загруженным файлом? Должен быть какой-то простой способ сделать это. Благодаря!Как сделать загрузку файлов на основе форм в CakePHP?
ответ
Во-первых, ваша форма должна быть настроена для разрешения загрузки файлов.
<?php echo $form->create(Model, array('type' => 'file')); ?>
Это позволит любой файл входы на самом деле загрузить файл на сервер с $form->file(field)
или $form->input(field, array('type' => 'file'))
.
После того, как файл был загружен, вы должны обрабатывать все остальное внутри Model:
function beforeSave($created) {
extract($this->data[Model][field]);
if ($size && !$error) {
move_uploaded_file($tmp_name, destination);
$this->data[Model][field] = destination;
}
return true;
}
Это только основы, так что будьте уверены, чтобы иметь игру, чтобы найти решение, которое наилучшим образом соответствует вашим потребностям ,
ПРИМЕЧАНИЕ: MeioUploadBehavior устарел. Вместо этого jrbasso предлагает Upload Plugin
.
В дополнение к лучшим ответам, которые уже заданы, я хочу рассказать о MeioUploadBehavior
, в настоящее время поддерживается jrbasso at github, что очень помогло мне в моем собственном проекте CakePHP.
Вы просто добавляете поведение в свою модель с помощью поля $actsAs
и в то же время указываете любые пользовательские настройки. Затем создайте необходимые поля (описываемые подробными документами) в своей базе данных или настройте модель, чтобы не использовать таблицу базы данных. Наконец, настройте форму на странице добавления, также описанную в прилагаемой документации. После этого поведение позаботится обо всем остальном.
Вы можете использовать компоненты Zend для обработки загрузки файла. На моем сайте есть хороший пример: CakePHP file upload using Zend Components
Hello Geo. Я сделал комментарий к вашей статье в блоге. Пожалуйста, укажите версию CakePHP, которую вы использовали в своем примере. Благодарю. –
- 1. Как сделать загрузку нескольких файлов?
- 2. Как сделать загрузку файлов в asp.net mvc?
- 3. CakePHP. Несколько форм на странице
- 4. Как совместить загрузку файлов и отправки форм значения вместе
- 5. Разрешения на загрузку/загрузку масштабируемых файлов
- 6. Остановить загрузку файлов на загрузку страницы
- 7. Аутентификация на основе форм
- 8. Разрешения на загрузку файлов IUSR
- 9. Как сделать красивую и простую загрузку файлов в javascript?
- 10. Как защитить загрузку файлов?
- 11. Как сделать загрузку файлов вместо открытия в браузере?
- 12. Как сделать загрузку файлов Flex в firefox и safari?
- 13. .NET Core - веб-API - Как сделать загрузку файлов?
- 14. Свойства файлов для управления входами форм на основе ролей
- 15. Как обрабатывать загрузку файлов?
- 16. Как сделать загрузку страницы быстрее?
- 17. Разрешения на загрузку файлов PHP
- 18. Как сделать загрузку в Android?
- 19. cakephp несколько форм
- 20. Как сделать загрузку файла php?
- 21. Невозможно сделать загрузку файлов на RestController за SpringSecurity (получил 404)
- 22. Ограничения на загрузку php-файлов
- 23. Проблем на загрузку файлов изображений
- 24. Сделать ярлыки форм динамическими на основе выбранного языка
- 25. Проверка подлинности на основе форм
- 26. Android - аутентификация на основе форм
- 27. CakePHP 2.3.x Отправка файлов и принуждать загрузку файла mp4
- 28. Как сделать загрузку/библиотеку
- 29. Как отменить загрузку файлов на java-сервере?
- 30. TokenMismatchException на загрузку больших файлов
, что имя функции должно читать «move_uploaded_file» :) – inkedmn
Ах спасибо, это было обновлено. Текстовое поле не проверяет мой синтаксис. ;) –
Вот как я сделал функцию move_uploaded_file: move_uploaded_file ($ _ FILES ['data'] ['tmp_name'] ['Item'] ['ipath'], "$ destination /".$_ FILES ['data'] [ 'имя'] [ 'Item'] [ 'IPath']); –