如何使用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数据库中插入多行?