2013-11-14 114 views
0

我正嘗試創建一個跨平臺的應用程序,並且我想使用Codeigiter將不同設備中的圖像保存在數據庫中。我可以從設備中選擇圖像,但是我很困惑並且不知道如何保存圖像並從數據庫中檢索圖像。將圖像保存到數據庫中無法正常工作

控制器

function addstatesoothing() { 

    // write user data into the user database 
    $config['upload_path'] = './'; 
    $config['allowed_types'] = 'gif|jpg|png'; 
    $config['max_size'] = '1000000'; 
    $config['overwrite'] = TRUE; 
    $config['remove_spaces'] = TRUE; 
    $config['encrypt_name'] = FALSE; 

    $this->load->library('upload', $config); 
    $image_path = $this->upload->data('soothing-img'); 
    $data = array(
     'soothing-img' => $image_path[full_path], 
     'soothing-title' => $this->input->post('soothing-title'), 
    ); 
    $this->favourite_db->addstatesoothing($data); 
    $this->load->view('soothing'); 
} 

型號

function addstatesoothing($data) { 
    $this->load->database(); 
    $this->db->insert('soothing', $data); 
    return $data; 
} 

查看

<form method="post" action="addstatesoothing"> 
       <!-- <button data-theme="d" onclick="capturePhoto();">Capture Photo</button> --> 
       <a data-theme="d" onclick="getPhoto(pictureSource.PHOTOLIBRARY);">Click to Add Pictures</a> 
       <img style="width:100%;" id="largeImage" src="" name="soothing-img"/> <br> 
       <input type="text" name="soothing-title" id="Climbed a Mountain" value="" placeholder="Climbed a Mountain"/> 
       <button data-theme="a">Save Memory</button> 
       </form> 
+0

混淆和庫存並不可以在這裏解決了一個問題,所以你有什麼編程問題? –

+0

上面的代碼不會保存圖像文件在數據庫中 – Omade

+0

啊,我以爲'$ this-> db-> insert('soothing',$ data);'這樣做了,但有人已經做好了你的功課;-) –

回答

1

要保存圖像數據庫:

1 - 數據庫您的圖像場應當是BLOB類型。

2 - 從圖像中獲取文件內容:

$image = file_get_contents($_FILES['image']['tmp_name']); 

3 - 在你的BLOB類型字段將它保存在數據庫

mysql_query("insert into images (image) values ('$image') "); 

我不知道,如果你使用其他方法來保存數據庫中的數據,你的代碼有點不一樣,但是就是這樣,對吧?最後它會插入數據庫中的一行,如果您有任何疑問,請在這裏留言,但在這一點上很容易,火腿?現在讓我們去retriving圖像

首先,在數據庫存儲圖像內容是一個真正的錯誤,但這不是問題吧?所以,我不是這種方法的專家,但我會怎樣:

創建像image.php的另一個頁面,通過參數

image.php接收一些ID或圖像名稱:

<?php 

$id = $_GET['id']; 
$query = "SELECT image FROM images WHERE `id`=$id"; 
$result = mysql_query($query); 

header("Content-type: image/jpeg"); //if is another format like .png change here 


while($row = mysql_fetch_assoc($result)) 
{ 
    echo $row['image']; 
} 
?> 

很高興,你有反應的圖像就像任何* .jpg文件一個漂亮的*。PHP文件,所以現在把它在你的HTML

SomePage.html

<img src="image.php?id=12345" /> 

好,全部完成,

爲什麼我告訴他們儲蓄圖像內容是壞?: SO傢伙是真棒,我們有驚人的材料來解釋爲什麼在數據庫中保存的圖像是壞的!你可以檢查一下吧,這裏有:

  1. Storing Images in DB - Yea or Nay?
  2. Store images in database or on file system