如何在 cakephp 的数据库中插入图像名称?
Posted
技术标签:
【中文标题】如何在 cakephp 的数据库中插入图像名称?【英文标题】:How can I insert image name in database in cakephp? 【发布时间】:2014-05-01 12:53:35 【问题描述】:到目前为止我已经实现如下。
我面临的问题是我无法更新文件名,因此出现错误,导致文件无法上传。
控制器:
public function add()
if (!empty($this->data))
if (!empty($this->data['Note']))
$filename = basename($this->data['Note']['note_image']['name']);
move_uploaded_file($this->data['Note']['note_image']['tmp_name'],WWW_ROOT . 'files' . DS . $filename);
if($this->Note->save($this->data['Note']))
$this->Session->setFlash('The note has been saved');
$this->redirect(array('action' => 'add'));
查看:
<?php
echo $this->Form->create('Note', array('type' => 'file'));
echo $this->Form->input('note_title');
echo $this->Form->input('note_desc');
echo $this->Form->input('note_image', array('type' => 'file'));
echo $this->Form->end('Add');
?>
我认为保存功能不会存在。有什么办法吗。
【问题讨论】:
“我收到一个错误” - 错误应该在问题中。还请用您正在使用的 CakePHP 版本标记您的问题(看起来像 2.x) 【参考方案1】:控制器代码应该是这样的:
public function add()
if ($this->request->is('post') || $this->request->is('put'))
$file = $this->request->data['Note']['note_image'];
if($file['error'] === UPLOAD_ERR_OK)
$filename = $file['name'];
if(move_uploaded_file($file['tmp_name'],WWW_ROOT . 'files' . DS . $filename))
$this->request->data['Note']['note_image'] = $filename;
if($this->Note->save($this->request->data))
$this->Session->setFlash('The note has been saved');
$this->redirect(array('action' => 'add'));
else
$this->Session->setFlash('ERROR');
$this->redirect(array('action' => 'add'));
视图应该是这样的:
<?php
echo $this->Session->flash();
echo $this->Form->create('Note', array('enctype'=>'multipart/form-data'));
echo $this->Form->input('note_title');
echo $this->Form->input('note_desc');
echo $this->Form->input('note_image', array('type' => 'file'));
echo $this->Form->end('Add');
?>
【讨论】:
亲爱的,我认为您的帖子会很有用,但我收到一条错误消息:'致命错误:在 E:\wamp\www\ 中的非对象上调用成员函数 is() cake\app\controllers\notes_controller.php 在第 34 行'。你有没有其他的解决办法。但我还是会感谢你的尝试。 试试这个:if ($this->request->is('post') 这是 cakephp 2.x 版本以上是关于如何在 cakephp 的数据库中插入图像名称?的主要内容,如果未能解决你的问题,请参考以下文章
在Cakephp 3.6中如何获取图像的大小和类型以通过表单发送?