Используя следующий код в моем файле просмотра (add.ctp):
<div class="resources form">
<?php echo $this->Form->create('Resource');?>
<fieldset>
<legend><?php __('Add Resource'); ?></legend>
<?php
echo $this->Form->input('title');
echo $this->Form->input('file', array('type' => 'file'));
...
?>
</fieldset>
<?php echo $this->Form->end(__('Submit', true));?>
</div>
...
... и следующий код в контроллере ...
function add() {
if (!empty($this->data)) {
$this->Resource->create();
if ($this->uploadFile() && $this->Resource->save($this->data)) {
$this->Session->setFlash(__('The resource has been saved', true));
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The resource could not be saved. Please, try again.', true));
}
}
....
}
...с помощью следующей функции для проверки процесса:
function uploadFile() {
$file=$this->data['Resource']['file'];
$this->data['Resource']['filename'] = 'failing with name:'.$file['name'].'/ file_mime: '.$file['filemime'];
return true;
}
База данных всегда заполняется первым символом исходного имени файла, независимо от того, какой файл я пытаюсь загрузить или какие элементы массива $ fileЯ пытаюсь получить доступ.Например, с test.gif я получаю:
"ошибка с именем: t / file_mime: t"
Стоит отметить, что этот код является результатом того, что я сократил задачи, которые должна была выполнять функциявыполнить до минимума, чтобы найти проблему.Отсюда и странность результата.Столбец базы данных для имени файла устанавливается следующим образом:
filename / varchar (200) / utf8_general_ci / NOT NULL
Я новичок в CakePHP и нахожусь в полной потере того, что искатьдля того, чтобы сделать эту работу, вырывая мои волосы.Любая помощь или указание в правильном направлении, будут с благодарностью приняты.