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

时间:2018-06-15 02:26:22

标签: php codeigniter phpmyadmin codeigniter-3

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

我的控制器端代码如下:

$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']    
));  

2 个答案:

答案 0 :(得分:1)

图像始终首先上传到临时文件夹。之后它应该存储在一个文件夹中,然后用PHP函数move_uploaded_file($filename, $destination)移动到一个选择的文件夹中。 您可以阅读about the common procedures and pitfalls on php.net

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

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

答案 1 :(得分: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