我正在使用WAMP服务器,我想使用CI在数据库中上传图像。数据库中的图像变量是blob数据类型。我的问题如下: 1)如何存储图像而不是文件名以及我应该使用哪些数据类型? 2)如何从数据库中检索图像?
我的控制器
public function index()
{
$this->load->model('contact_model');
if ($this->input->post('upload')) {
$data['logo_name']= $this->input->post('name');
$data['logo_image']=$_FILES['userfile']['name'];
if($this->contact_model->do_upload()) {
echo $this->upload->display_errors();
}else {
$this->contact_model->Save_image($data);
}
}
$data['getlogo']=$this->contact_model->getlogo();
$this->load->view('templates/header',$data);
}
我的模特
function do_upload() {
$this-> gallery_path=realpath( APPPATH.'./uploads');
$config = array(
'allowed_types' => 'jpg|png|bmp',
'upload_path'=>$this->gallery_path,
'max_size'=>2000
);
$this->load->library('upload',$config);
if ($this->upload->do_upload()) {
echo "Upload success!";
$image_data=$this->upload->data();
}
else
{
echo "Upload failed!";
echo $this->upload->display_errors();
}
}
function getlogo(){
$this->db->where('logo_id',3);
return $this->db->get('logo');
}
function save_image($data){
$q= $this->db->insert('logo', $in);
return $q;
}
我的观点
<?php foreach ($getlogo->result() as $row){ ?>
<a href="#" style="padding-right:1px">
<img src="<?php echo base_url();?>/application/uploads/<?php echo $row->logo_image;}?>"
height="200px" width="500px" /></a>
答案 0 :(得分:1)
按this将文件保存为blob
并使用
<img src="data:image/jpeg;base64,<?php echo base64_encode($image['file_data'])?>'"/>
用于显示图像