數據庫:
CREATE TABLE `app_files` (
`file_id` int(10) NOT NULL AUTO_INCREMENT,
`file_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`file_data` longblob NOT NULL,
PRIMARY KEY (`file_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
保存到模型的圖像:
if(!empty($_FILES["company_logo"]) && $_FILES["company_logo"]["error"] == UPLOAD_ERR_OK && !is_on_demo_host())
{
$allowed_extensions = array('png', 'jpg', 'jpeg', 'gif');
$extension = strtolower(pathinfo($_FILES["company_logo"]["name"], PATHINFO_EXTENSION));
if (in_array($extension, $allowed_extensions))
{
$config['image_library'] = 'gd2';
$config['source_image'] = $_FILES["company_logo"]["tmp_name"];
$config['create_thumb'] = FALSE;
$config['maintain_ratio'] = TRUE;
$config['width'] = 170;
$config['height'] = 60;
$this->load->library('image_lib', $config);
$this->image_lib->resize();
$company_logo = $this->Appfile->save($_FILES["company_logo"]["name"], file_get_contents($_FILES["company_logo"]["tmp_name"]), $this->config->item('company_logo'));
}
}
型號:
<?php
class Appfile extends CI_Model
{
function get($file_id)
{
$query = $this->db->get_where('app_files', array('file_id' => $file_id), 1);
if($query->num_rows()==1)
{
return $query->row();
}
return "";
}
function save($file_name,$file_data, $file_id = false)
{
$file_data=array(
'file_name'=>$file_name,
'file_data'=>$file_data
);
if (!$file_id)
{
if ($this->db->insert('app_files',$file_data))
{
return $this->db->insert_id();
}
return false;
}
$this->db->where('file_id', $file_id);
if ($this->db->update('app_files',$file_data))
{
return $file_id;
}
return false;
}
function delete($file_id)
{
return $this->db->delete('app_files', array('file_id' => $file_id));
}
}
?>
查看圖片:
$file = $this->Appfile->get($file_id);
header("Content-type: ".get_mime_by_extension($file->file_name));
echo $file->file_data;
可以在Google有很多教程,用於存儲數據庫的詳細說明圖像/ IMG路徑不能是可在這裏... :)希望大家理解 – Linus