如何在不上传任何文件夹的情况下在数据库中插入图像?
我的控制器端代码如下:
$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']
));
答案 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');
}