我不知道如何在db中存储图像并显示它?
我想要做的是在db中存储图像路径并将图像存储在/ img /文件夹中,然后将其显示给用户。
在我的注册表格中,我要求用户上传这样的图像
<?php echo $this->Form->input('image', array('class'=>'forminput', 'label' => 'Upload Image:', 'type' => 'file')); ?>
并且在数据库类型的图像字段中是longblob。
像这样向用户显示......
<?php echo $this->html->image('Auth.User.image');?>
答案 0 :(得分:2)
将图像存储在服务器上,在DB中只保存图像名称。
通常情况下,图片会存储在 webroot 的 img 文件夹中。当您显示图像时,您将拥有以下内容:
<?php echo $this->Html->image('img' . DS . CakeSession::read('Auth.User.image')); ?>
在控制器内部,您应该像在PHP中一样正常地上传文件。
$file_name = $_POST['User']['name'];
$tmp_file = $_POST['User']['tmp_name'];
if(is_uploaded_file($tmp_file)){
if(move_uploaded_file($tmp_file){
...
$this->data['User']['image'] = $file_name;
$this->User->save($this->data);
}
}
答案 1 :(得分:0)
paste it in your controller and change the field and model names accroding to
公共函数add(){
$this->set('status_tbl', $this->Player->Status->find('list'));
if ($this->request->is('post')) {
$this->Player->create();
if(!empty($this->request->data)){
if(!empty($this->request->data['Player']['image']['name'])){
$file = $this->request->data['Player']['image'];
$ext = substr(strtolower(strrchr($file['name'], '.')), 1);
$arr_ext = array('jpg', 'jpeg', 'gif');
if(in_array($ext, $arr_ext)){
$this->request->data['Player']['image'] = $file['name'];
move_uploaded_file($file['tmp_name'],'uploads/file'.$file['name']);
$this->Player->save($this->request->data);
}
}
if($this->Player->save($this->request->data)){
return $this->redirect(array('controller'=>'Players',"action"=>'index'));
}
}
}
}