Загрузка файла текста / слова в cakephp, а затем просмотр в реальном времени
Я хочу иметь возможность загружать файлы в базу данных, а затем иметь ссылку для просмотра, чтобы я мог также увидеть этот файл. В основном все сохраненные файлы должны отображаться на странице индекса, и если я нажимаю кнопку просмотра, содержимое файла должно отображаться на странице просмотра. Я использую эти коды, вот моя часть контроллера:
public function add(){
if ($this->request->is('post')){
$this->Doc->create();
$filename = $this->request->data['Doc']['docname']['name'];
$this->request->data['Doc']['docname'] = $filename;
if ($this->Doc->save($this->request->data)){
$this->Session->setFlash('Message : ' . $filename);
$this->redirect(array('action' => 'index'));
}else{
$this->Session->setFlash(__('The Doc could not be saved. Please, try again'));
$this->redirect(array('action' => 'add'));
}
}
}
Вот моя функция добавления в app / view:
<div class="doc form">
<?php echo $this->Form->create('Doc', array('type' => 'file')); ?>
<fieldset>
<table align="left">
<tr>
<td>
<?php echo $this->Form->input('docname', array('type' => 'file'));?>
</td>
</tr>
</table>
</fieldset>
<div align="center" style="padding: 20px">
<?php echo $this->Html->link('Cancel',array('controller' => 'docs', 'action' => 'index'), array('class' => 'btn btn-primary')); ?>
<?php echo $this->Form->button('Submit',array('type'=>'upload','class'=>'btn btn-primary')); ?>
<?php echo $this->Form->end(); ?>
Все, что я получаю, - это только имя файла, сохраняемого в базе данных, и все эти имена также отображаются на моей странице указателя, но если я нажимаю кнопку просмотра, я просто вижу имена файла, а не содержимое под ним. Я новичок в cake-php, поэтому сомневаюсь, что это правильный подход или нет. Я использую версию Cake-Php 2.4. База данных является postgres. Мой стол такой:
Тип столбца
id (целое число)
имя документа (различается символ (255))
grant_id (целое число (fk))
И моя модель Дока выглядит так
class Doc extends AppModel {
//The Associations below have been created with all possible keys, those that are not needed can be removed
public $belongsTo = array(
'Grant' => array(
'className' => 'Grant',
'foreignKey' => 'grant_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
}