如何使用codeigniter在数据库中插入图像

Posted

技术标签:

【中文标题】如何使用codeigniter在数据库中插入图像【英文标题】:how to insert image in database using codeigniter 【发布时间】:2018-11-24 20:57:14 【问题描述】:

如何在不上传任何文件夹的情况下将图片插入数据库?

我的控制器端代码如下:

$data['f_name'] = $this->input->post('f_name');  
$data['l_name'] = $this->input->post('l_name');  
$data['contact'] = $this->input->post('contact');  
$data['email'] = $this->input->post('email');  
$data['uid'] = $this->input->post('uid');  
//$data['user_image'] = $this->input->post->userfiles['file_name'];  

下面是我的模型侧代码 id:

$this->db->where('id',$data['uid']);  
$this->db->update('users',array(  
'first_name' =>     $data['f_name'],  
'last_name' =>    $val['l_name'],  
'email'  =>    $val['email'],  
 'phone'  =>    $data['contact']    
));  

【问题讨论】:

How add image into form with fields code Codeigniter的可能重复 但我的问题是没有在任何文件夹中上传如何在变量中获取图像数据 【参考方案1】:

希望对您有所帮助:

使用$_FILES获取文件名

首先你的表单应该是这样的:

<form action="<?=site_url('controller_name/method_name');?>" enctype="multipart/form-data" method="post" accept-charset="utf-8">

  <input type="file" name="test" id="">

  /*and other input fields*/

  <button type="submit" name="submit">submit</button>
  </form>

在控制器中使用变量$_FILES获取文件名

public function method_name()

   // as you mention u don't want to upload the file

   $file_name = $_FILES['test']['name'];
   $data['user_image'] = $file_name; 

   $data['f_name'] = $this->input->post('f_name');  
   $data['l_name'] = $this->input->post('l_name');  
   $data['contact'] = $this->input->post('contact');  
   $data['email'] = $this->input->post('email');  
   $data['uid'] = $this->input->post('uid');



更多: http://php.net/manual/en/reserved.variables.files.php

【讨论】:

你检查我的答案了吗? 先生,您能否帮助我了解如何在浏览器中从数据库中查看图像,就像我尝试显示图像名称的表的其他字段一样,但如何显示图像 为此,您必须将图像上传到项目的其中一个文件夹中,并表明您必须将图像的路径放在图像的 src 属性中【参考方案2】:

图像总是首先上传到临时文件夹。之后通常会将其存储在一个文件夹中,然后使用 PHP 函数 move_uploaded_file($filename, $destination) 将其移动到选择的文件夹中。 你可以阅读about the common procedures and pitfalls on php.net。

如果您想将文件存储在数据库中,我想您可以从临时目录中执行此操作,但您必须自己清理该目录。 重要的是要知道变量 $_FILES 包含一个数组,其中包括临时名称和上传名称等详细信息。

请注意,处理数据库以进行移动、复制等操作可能会很困难,尤其是在其中存储了许多文件时出现任何错误的情况下。数据库可以变得非常快非常大。将图像存储在数据库中并不是一个错误,但这不是常见的做法,并且有一些负面的方面。至少我会通过分隔表将媒体与数据库中的任何数据分开,因此您的决定应该会对数据库设计产生一些影响。

【讨论】:

以上是关于如何使用codeigniter在数据库中插入图像的主要内容,如果未能解决你的问题,请参考以下文章

Codeigniter上传:插入数据库时​​图像的文件名返回null

如何使用codeigniter 4框架在mysql数据库中插入多行?

如何使用 CodeIgniter 在数据库中插入多个值?

如何在codeigniter中使用ajax在mysql数据库中插入数据?

如何在 Codeigniter 中插入动态数据?

如何在 CodeIgniter 中获取活动记录插入的结果